You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UPS OAuth Authorize API集成超时:C# RestSharp请求超时而CURL正常

解决UPS OAuth API RestSharp/C#请求超时问题

核心差异点:curl仅返回302重定向响应,不会自动访问redirect_uri;而RestSharp默认会自动跟随重定向,尝试请求你指定的https://local.myclient.com/...本地回调地址。如果代码运行环境(如服务器、Docker容器)无法访问这个本地地址,就会触发超时。

方案1:关闭自动重定向,直接获取302响应

修改RestClient配置,禁用自动跟随重定向逻辑:

var restClientOptions = new RestClientOptions("https://onlinetools.ups.com/security/v1/oauth/authorize")
{
    FollowRedirects = false // 关键:关闭自动跳转
};

var restClient = new RestClient(restClientOptions);
var request = new RestRequest(Method.GET);
request.AddQueryParameter("client_id", "MyclientId");
request.AddQueryParameter("redirect_uri", "https://local.myclient.com/Seller/Carrier/UpsOAuthCallback");
request.AddQueryParameter("response_type", "code");
request.AddQueryParameter("scope", "read");
request.AddQueryParameter("state", "superstate");
request.AddQueryParameter("code_challenge", "boxes2021");

var response = await restClient.ExecuteAsync(request);
// 此时会直接拿到302响应,不会尝试请求本地回调地址

方案2:补全请求头,模拟curl请求特征

curl默认会携带User-Agent头(如curl/7.68.0),部分API会校验请求头合法性,手动添加User-Agent试试:

// 在request参数添加后补充以下代码
request.AddHeader("User-Agent", "curl/7.68.0");

额外注意:参数一致性

你的C#代码中code_challenge值为boxes2021,但curl命令里是boxes@2021,请确认参数值是否一致,避免因参数不匹配导致的隐性异常。

内容的提问来源于stack exchange,提问作者shiptoboxes shiptoboxes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:47:13