私のasp.net mvc-4 Webアプリケーション内でこの奇妙な動作に直面しています。今私は、外部APIに文字列をアップロードするには、次のWebClient()
を持っている: -WebClient()UploadString()メソッドが次のエラーを受け取りました: "リモートサーバーがエラーを返しました:(599)"渡された文字列を入れて<>
var data = JsonConvert.SerializeObject(mainresourceinfo);
using (WebClient wc = new WebClient())
{
string url = currentURL + "resources?AUTHTOKEN=" + pmtoken;
Uri uri = new Uri(url);
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
crudoutput = wc.UploadString(uri, "INPUT_DATA=" + HttpUtility.UrlEncode(data));
}
、ここでは、私は(URLはエンコードにJSONをURLに必要とAPIドキュメントごとに、それを符号化する前に)送りますJSONオブジェクトであります: -
INPUT_DATA="{\"operation\":{\"Details\":{\"RESOURCENAME\":\"test server 500123\",\"ACCOUNTNAME\":\"1\",\"RESOURCETYPE\":\"Windows\",\"PASSWORD\":\"<1234>\",\"NOTES\":null,\"Account Type\":null,\"RESOURCEURL\":null,\"OWNERNAME\":\"admin\",\"RESOURCEGROUPNAME\":\"other CUstomers\",\"DNSName\":\"-\",\"DEPARTMENT\":null,\"LOCATION\":null,\"RESOURCECUSTOMFIELD\":[{\"CUSTOMLABEL\":\"Asset Tag\",\"CUSTOMVALUE\":\"H1007228\"}],\"ACCOUNTCUSTOMFIELD\":[{\"CUSTOMLABEL\":\"Account Type\",\"CUSTOMVALUE\":\"domain\"}]}},\"createAccount\":{\"operation\":{\"Details\":{\"ACCOUNTLIST\":[]}}}}"
私のJSONオブジェクトは、次の文字を持っている任意の値が含まれている今場合<
または>
次のエラーを取得するWebクライアントのUploadString方法: -
System.Net.WebException occurred
HResult=-2146233079
Message=The remote server returned an error: (599).
Source=System
StackTrace:
at System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
at System.Net.WebClient.UploadString(Uri address, String method, String data)
at System.Net.WebClient.UploadString(Uri address, String data)
私は/ FirefoxのRESTClientデバッガの内部で上記のJSON文字列をコピー&ペースト、と私はRESTClientツール内で呼び出しを実行した場合一方、操作が正常に動作します...
、なぜそうであれば誰もがadivceすることができます私はasp.net WebClient
からWebサービスを呼び出し、jsonオブジェクトには<
または>
が含まれています。次のエラーThe remote server returned an error: (599)
が表示されますか? FireFoxのRESTClientデバッガを使用して同じjson文字列を使用してWebサービスを呼び出しても問題ありませんか?
最終的に、私のjson文字列にこれらの2文字のいずれかが含まれていない場合<
または>
すべて正常に動作します。
編集
私は、サードパーティのAPIにPOSTリクエストを作るためにRESTCleintツールを使用する場合、今,,私は、サードパーティのAPIから次の応答を見ることができます..私は、次のレスポンスヘッダを得ました: -
Status Code: 200 OK
Cache-Control: no-store
Content-Type: text/html;charset=UTF-8
Date: Thu, 04 Aug 2016 15:29:37 GMT
Pragma: no-cache
Server: PMP
Set-Cookie: JSESSIONID=B9CA7B68CD5706C3B82FE925B3AB3244; Path=/; Secure; HttpOnly
Strict-Transport-Security: max-age=7776000; includeSubdomains
Transfer-Encoding: chunked
X-フレーム・オプション:SAMEORIGIN
FireFoxのRESTClient内のリクエストヘッダーをどのように知ることができますか? –
私はFireFoxのRESTClientを使用しませんが、製品情報に基づいてRESTfulサービスのデバッガです。また、「デバッグ」という用語では、アドオンによって送信されているリクエストヘッダを見ることができます。 –
リクエストヘッダーを知る方法を見つけようとしましたが失敗しました...何が起こっているのか分かりません。あなたがリクエストヘッダーをチェックして、それが私が現在ウェブクライアントの中で使っているものと同じであるなら、あなたがウェブサービスのバグを見つけたかもしれないと言ったのですが、どういうバグでしょうか?私のasp.netが失敗する間、FireFox RESTClientがうまく動作するのを許可する? –