始める前に
「既存の接続はリモートホストによって強制的に閉じられました」に関連するいくつかの質問があるように思われるため、これが重複する質問である場合は、最初に事前に謝罪しますが、これらの他の質問は同じであるため、助けを得ることができないようですFTP(HTTPではなく)に関連している、長さの問題を要求するように思われる、または単に答えがわかりません。
目標
System.Net.WebRequestを使用して、サードパーティサービスのモバイルアプリケーションプッシュサービスParse.comへのRESTAPI呼び出しを行おうとしています。このリクエストは約95%の時間で機能しますが、System.Net.Web例外が断続的にスローされます。
私が読んだいくつかの同様の投稿は、これが送信されるリクエストのサイズと関係がある可能性があることを示していますが、リクエストは毎回ほぼ同じサイズであるため、これは私にはありそうもないようです(注:これは無知な仮定かもしれません)。
これが私がWebリクエストを行うために使用している方法です
public static WebResponse SendPushHttpRequest(
string payload, string apiID, string apiKey)
{
WebRequest request = WebRequest.Create("https://some.api.com/1/endpoint");
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["Application-Id"] = apiID;
request.Headers["API-Key"] = apiKey;
byte[] buffer =
System.Text.Encoding.GetEncoding("UTF-8").GetBytes(payload);
//string result = Convert.ToBase64String(buffer);
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
try
{
using (WebResponse response = request.GetResponse())
{
return response;
}
}
catch (Exception ex)
{
throw ex;
}
}
スローされるSystem.Net.Web例外は 次のとおりです。基になる接続が閉じられました:受信時に予期しないエラーが発生しました。
内部例外 トランスポート接続からデータを読み取れません:既存の接続がリモートホストによって強制的に閉じられました。 "} System.SystemException {System.IO.IOException}
例外ステータス ReceiveFailure
スタックトレース
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
Webサーバーからの応答
GenericParameterAttributes '(((System.Reflection.RuntimeMethodInfo)(((System.Exception)(ex)).TargetSite)).ReturnType).GenericParameterAttributes'
タイプ'System.InvalidOperationException'System.Reflection.GenericParameterAttributes{System.InvalidOperationException}の例外をスローしました
メッセージ:「メソッドは、Type.IsGenericParameterがtrueであるタイプでのみ呼び出すことができます。」ストリング
最後になりましたが、RawHTTPリクエスト
POST http://localhost:58746/mobile/SendPushV2 HTTP/1.1
Host: localhost:58746
Connection: keep-alive
Content-Length: 140
Accept: */*
Origin: http://localhost:58746
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost:58746/Mobile
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: .Admin=3B704FD9ECC241F670F57DA43341FBE8A68BDD64F0E863363F31FF75F676EB8AC78D978DE8F1672D34D5C775B49A42E0F6E0F2FB8F867F9F963B0C0AC6C0F1EDD169AB171B8EE0B6A9ACFCBEF1491AAC8FF623DC9874D514EAE7FCF3407C582EBFE0EF4C4A7D495DF38D8F155A2C6275A884BD0F10CFBF6E4B2232641394E9992999755E9F7CD268747DCD7C81A2062DC8D290E99F0A97E0D6594986936DA9BD643D3814EF3621A671103F55EF85E8B648D68E778D1E21D65C22528CE44A3E980A0C2E8BD35B840189A6D9F11B363E69A310A20A7B554FB2C6BFEB7D81784C273DD1DFDBFF2D0FD91A41B522128C1C5156F22FB84007375682013F08372C580A7A2E85C0; ASP.NET_SessionId=nsmooq2pwg04ursg4aly25bs; .AppRoles=bJt49nUK2-dUVVz5AZH2QrG0VHUGrCXpD6FJ3KU4Q5EI9LbvSP1eUCza3g_3dfdkXqgdHJ19C5xVVWO5oByXPFXL5ateafVmbEH9FX5C10pQsOPrGXEe4DZTVzhFd464zydJG5OMCHvO_sTaRFTRAlX5OfyxG6K8J1yL00FnejVZElH51Zm55zhEjbHnkDlxursOZ55skBu9KmxFWe0tgU-9ieuQIo1TUOHe4sTUQec0LyPPaWd7c_cGFjbHqyzoTcVyBf2v86isy5dXaQmIptstKfl8yE6EU1WzVZ15I-N8J3vJKT_ojRKhrDyGyibkb4S0STvGuaqmGAUE27uaBhkafJVkgvP-yU-GA_TMSffq7DWOzezzPldc5LdpxEymFAjeyuzqSc-OVN0cw1uGXm60xgtFnQSUkXMpCFXgYvcUGNb1757gGcTen-zOyBx5KR8-TNE-Z39J3tpljwax_nUDElogSzaQ_9gR5-59ds1KW_LUsQ-quKA1pFqp8SQv-_F_kzRQvIjLsFozGuwkWybvhMpQvg81uPuZsHEIiOEnajIk0
message=Test%5Cn+%5Cn0n77ap&token=0d14611b5ea03c7301bf6aaa0658fb1373192db85c5805aa1058884b9c994839&date=2013-03-19+13%3A41%3A02&platform=ios
誰かが私のためにこの問題に光を当てるのを手伝ってくれるなら、それは大いにありがたいです。