0
購入後にPayPal IPNを処理するために、以下のC#ASP.Netコードがあります。私はPayPal設定のエンコーディングをUTF8に設定しました。 ASCIIエンコーディング(コード内のUTF8がすべてASCIIに置き換えられた)でPayPalにリクエストを送り返すと、すべてが機能します。 UTF8エンコーディングでリクエストを送信すると、「リクエストが中止されました:リクエストはキャンセルされました」というメッセージが表示されます。最後の行のstreamOut.Close()で例外が発生します。私はIIS 7と.Net 2を有効にしたGodaddy Shared Hostingを使用しています。助言がありますか?"リクエストが中止されました:リクエストがキャンセルされました。 PayPal IPN処理中
protected void Page_Load(object sender, EventArgs e)
{
string strRequest = string.Empty;
try
{
string strLive = "https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strLive);
req.KeepAlive = false;
req.ReadWriteTimeout = 600000;
req.Timeout = 600000;
//Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);
strRequest = Encoding.UTF8.GetString(param);
strRequest += "&cmd=_notify-validate";
req.ContentLength = System.Text.Encoding.UTF8.GetByteCount(strRequest);
//Send the request to PayPal and get the response
Stream RequestStream = req.GetRequestStream();
StreamWriter streamOut = new StreamWriter(RequestStream, System.Text.Encoding.UTF8);
RequestStream.ReadTimeout = 600000;
RequestStream.WriteTimeout = 600000;
streamOut.Write(strRequest);
streamOut.Close(); // EXCEPTION: "The request was aborted: The request was canceled."