Rest API 호출이 게시에서 예외를 throw합니다. 그리고 그VS.Net에서 WebException 세부 정보가 변경됨
The remote server returned an error: (404) Not Found.
는 API fiddler 트래픽을 캡처 할 때 잘 작동
try
{
RestClient client = new RestClient(...);
string apiResponse = client.MakeRequest(..);
}
catch (WebException wex)
{
throw wex;
}
를 호출하는 다음 코드입니다. 그러나 피들러가 캡처하지 않으면 클라이언트는 다음 예외를 받았습니다.
The remote server returned an error: (502) Bad Gateway.
ps. Postman (크롬 확장 프로그램) 및 Soap UI도 404을받은 : 업데이트]
찾을 수 없음 : 을 사람이 내가 놓친 거지 무엇을 지적시겠습니까
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 설정의 연결 탭에는 프록시가 설정되어 있지 않습니다. 어떻게하면이 문제를 없애기 위해 검사해야합니까?
Fiddler는 HTTP 프록시 역할을합니다. Internet Explorer 설정 (연결 탭)이 Fiddler를 사용하도록 설정되어 있으면 실행되지 않는 Fiddler와 작동하지 않습니다. –
웹 브라우저를 사용하고 있지 않습니다. 이것은 HTTP 웹 요청입니다. var request = WebRequest.Create (urlWithPortAndParams)); – MJK
404 의미하는 것을 의미합니다. 찾을 수 없습니다. 따라서 Rest API를 찾을 수 없으므로 Rest API에 연결할 수 없습니다. – user3036342