私は、サードパーティAPIの情報を内部データウェアハウスにプルするサービスを構築することを任されています。彼らは、クエリ文字列を介して必要なパラメータを指定する場所で、必要なデータを取得するリクエストを受け取ります。例えば。私のコードでGet request URLのHttpWebRequestの最大長
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をコピーしてPostmanに貼り付けてリクエストを実行すると、この記事のURL全体が表示されませんでした私が期待しているレスポンスなので、URLが正しくフォーマットされていることがわかります。また、URLの長さを約2100文字に減らすと、要求が機能することも発見しました。
私は検索していますが、URLの長さに制限があることを示唆する明確な文書は見つかりませんでしたが、URL全体がPostmanでは動作するが、ac#Web要求では動作しない理由を説明できません。私はURLの長さをカットすると、Webリクエストで動作します!
誰かがこれについてのアイデアを持っているなら、私はすばらしいでしょう。