0

Rest API 呼び出しは、投稿時に例外をスローします。そしてそれは

リモート サーバーがエラーを返しました: (404) 見つかりません。

APIを呼び出す次のコード

 try
 {
        RestClient client = new RestClient(...);
        string apiResponse = client.MakeRequest(..);
 }    
 catch (WebException wex)
 {
        throw wex;
}

フィドラーがトラフィックをキャプチャしているときは正常に機能します。ただし、フィドラーがキャプチャしていない場合、クライアントは次の例外を受け取りました。

リモート サーバーがエラーを返しました: (502) ゲートウェイが正しくありません。

PS。Postman (Chrome 拡張機能) とSoap UIも 404: Not Found を受け取りました

更新: これはコードであり、デバッグ中にエラーが発生します

public string MakeRequest(string parameters)
{
    var request = (HttpWebRequest)WebRequest.Create(_RestEndPoint + (parameters ?? String.Empty));
    request.Proxy = WebRequest.DefaultWebProxy;
    request.ContentLength = 0;
    request.Method = _Method.ToString();
    request.ContentType = _ContentType;
    request.KeepAlive = true;
    if (_RequestHeader != null)
    {
        foreach (var hdr in _RequestHeader)
        {
            request.Headers.Add(hdr.Key, hdr.Value);
        }
    }
    if (_Method == HttpVerb.POST || _Method == HttpVerb.PUT)
    {
       if (!string.IsNullOrEmpty(_PayLoad))
       {                    
          var bytes = Encoding.UTF8.GetBytes(_PayLoad);
          request.ContentLength = bytes.Length;

          using (var writeStream = request.GetRequestStream())
          {
              writeStream.Write(bytes, 0, bytes.Length);
              writeStream.Close();                        
          }
        }
    }
    using (var response = (HttpWebResponse)request.GetResponse())//Error returns here
    {
        var responseValue = string.Empty;
        checkForResponseExceptions(response.StatusCode, parameters);

        // grab the response
        using (var responseStream = request.GetResponse().GetResponseStream())
        {
            if (responseStream != null)
            {
                using (var reader = new StreamReader(responseStream))
                {
                    responseValue = reader.ReadToEnd();
                }
            }
        }

        return responseValue;
    }
}

誰かが私が欠けているものを指摘できますか?

更新 2:

次のコードを試しましたが、同じ問題があります

if (_Method == HttpVerb.POST)
{
    using (var wb = new WebClient())
    {
        wb.Headers[HttpRequestHeader.ContentType] = _ContentType;
        foreach (var hdr in _RequestHeader)
        {
            wb.Headers.Add(hdr.Key, hdr.Value);
        }
        try
        {
            var response = wb.UploadString(_RestEndPoint + (parameters ?? String.Empty), _Method.ToString(), _PayLoad);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}

@GSerg が 12 月 4 日 10:01 にコメントしたように、ネットワーク設定に何か問題があると思います。ただし、IE 設定の接続タブにプロキシが設定されていません。この問題を解決するには、何をどのように確認すればよいですか??

4

1 に答える 1