【发布时间】:2017-05-24 07:12:35
【问题描述】:
我的任务是构建一项服务,将信息从第三方 API 提取到我们的内部数据仓库。他们有一个获取请求,可以在您通过查询字符串指定所需参数的地方提取我想要的数据。例如
http://www.api.com?parameter=firstname¶meter=surname
在我的代码中,URL 的长度超过 3600 个字符,只要要求 116 个参数。
我的网络请求是使用以下代码生成的:
private HttpWebRequest GetWebRequest(string url, string type, int timeout)
{
var httpWebRequest = (HttpWebRequest) WebRequest.Create(_baseUrl + url);
httpWebRequest.Method = type;
httpWebRequest.Timeout = timeout;
httpWebRequest.ContentType = "application/json";
httpWebRequest.Headers.Add("Authorization", "Bearer " + _token.access_token);
httpWebRequest.ContentLength = 0;
return httpWebRequest;
}
当我运行代码时,我返回了一个带有消息“无法连接到远程服务器”的 Web 异常,以及一个内部异常消息“无法建立连接,因为目标机器主动拒绝了它的 IP 地址”
我没有在这篇文章中包含整个 URL,因为我发现如果我将 URL 复制并粘贴到 Postman 并运行请求,我会得到我期望的响应,因此我知道 URL 的格式正确。我还发现,如果我将 url 的长度减少到大约 2100 个字符,那么请求就会起作用。
我一直在搜索,但没有找到任何明确的文档表明 URL 的长度有限制,但我无法解释为什么整个 url 在 Postman 中有效,但在 ac# web 请求中无效,如果我削减了 URL 的长度,然后它在 Web 请求中起作用!
如果有人对此有任何想法,我会很高兴。
【问题讨论】:
标签: c# rest get webrequest