を使用して HTTP POST リクエストを PHP サーバーに送信していますHttpWebRequest
。私のコードは次のように機能します:
/// <summary>
/// Create Post request.
/// </summary>
/// <param name="requestUrl">Requested url.</param>
/// <param name="postData">Post data.</param>
/// <exception cref="RestClientException">RestClientException</exception>
/// <returns>Response message, can be null.</returns>
public string Post(string requestUrl, string postData)
{
try
{
//postData ends with &
postData = "username=XXX&password=YYYY&" + postData;
byte[] data = UTF8Encoding.UTF8.GetBytes(postData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
request.Method = RequestMethod.Post.ToString().ToUpper();
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
stream.Flush();
}
string responseString;
using (WebResponse response = request.GetResponse())
{
responseString = GetResponseString(response);
}
return responseString;
}
catch (WebException ex)
{
var httpResponse = (HttpWebResponse)ex.Response;
if (httpResponse != null)
{
throw new RestClientException(GetExceptionMessage(httpResponse));
}
throw;
}
}
私は奇妙な行動を経験しています。毎分、これを使用して 100 件のリクエストを送信しています。しかし、時々、このリクエストは POST データなしで実行されます。次に、PHPサーバーがエラーを返します(リクエストがPOSTであるかどうか、およびPOSTデータがあるかどうかを確認しているため)。
これはクライアント/サーバー通信です。Windows Service アプリケーションがインストールされたコンピューターは、Wifi を使用してインターネットに接続されています。接続が非常に悪い場合があります。これにより、言及された問題が発生する可能性がありますか? HTTP POST リクエストをこの動作に対して安全にする方法。