소프트웨어의 베타 출시 이후 우리가 직면 한 문제는 모든 사용자가 인증 될 수 없다는 것입니다 (우리는 웹 요청을 사용하여 인증합니다.) 무언가가 일이 발생했습니다. 정확한 원인을 정확히 알 수는 없지만 POST 요청으로 인한 것으로 확신합니다. 아래는 요청을하기 위해 사용하는 C# 메소드입니다.방화벽으로 차단되지 않도록 HTTP Post 메소드를 구성하는 방법
public static string getResponse(string url, string postdata)
{
try
{
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postdata);
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.Method = "POST";
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = byte1.Length;
Stream newstream = myHttpWebRequest.GetRequestStream();
newstream.Write(byte1, 0, byte1.Length);
WebResponse response = myHttpWebRequest.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
}
catch
{
return "";
}
}
아마도 모든 방화벽에서 허용하는 방식으로 구성하지 않았을 수 있습니다.
그렇다면 포트 문제, 요청 자체 또는 사용자 문제인지는 알 수 없습니다. 이전에이 문제에 직면 한 사람이 있습니까? 그것을 고치기 위해 당신은 무엇을 했습니까?
POST
을 구성하는 방법에 대한 "표준"이 있습니까? 대부분의 장치/방화벽에서 수용 할 수 있습니까? 우리가 올바른 항구를 사용하고 있습니까?
포트가'url' 문자열에 따라 포트 80 또는 443에 기본합니다 :
는 여기에 내가 HTTP 응답 헤더를 확인하도록 채찍질 Node.js를 스크립트입니다. 'url'이 비표준 포트를 사용한다면 방화벽 문제가있을 수 있습니다. – Romoku
예를 들어 피들러 (Fiddler)에서이 요청을 보내면 어떤 일이 일어나는지 보셨습니까? 어떤 반응을 보이고 있습니까? –
안녕하세요 @Romoku, 당신의 포트를 지정하는 곳은'url'입니까? 포트 80 또는 443이 기본 포트이기 때문에 포트를 하드 코드하여 매번 성공할 수 있습니까? @StephenByrne 응답 헤더를 볼 때주의해야 할 사항은 무엇입니까? – theGreenCabbage