サードパーティのサービスに接続するには、Https Postを作成する必要があります。必須セットの1つは、カスタムコンテンツタイプを送信することです。
WebClientを使用していますが、設定方法がわかりません。新しいクラスを作成してCreateRequestメソッドをオーバーライドしようとしましたが、そのリクエストがクラッシュしました。
CopyHeadersToメソッドを書き換えずにそれを行う方法はありますか?
[〜#〜] edit [〜#〜] CopyHeaderToは、.NET Reflectorを使用して確認したメソッドです。 GetWebRequestから呼び出され、プライベートプロパティからContent-Typeを含むすべてのリクエストヘッダーを設定します。
さて、私はちょうど逃したRequest.ContentType
プロパティ。 GetWebRequest
メソッドがオーバーライドされている場合は、ContentType
を目的の値に設定してください。
それでも、サードパーティへの接続が機能していません。図を行きます。
Headers コレクションに追加してみてください。
myWebClient.Headers.Add("Content-Type","application/xxx");
webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
私もこれに遭遇しました。そして、クライアントHttpを使用する必要があることがわかりました。それ以外の場合、ブラウザHttpはセキュリティ上の理由からContent-Typeの変更をブロックします。 このMSDNリンク 説明してください。
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
client.Headers["Content-Type"] = "application/json";