データを完全に投稿できるPOSTメソッドがあります。HttpClient.PutAsync - "EntityはJSON Content-Typeヘッダーでの書き込みのみを許可します"
文書を見ると、パッチ(またはPUT)は全く同じに見えますが、PostAsync
の代わりにPutAsync
を使用してください。
+ postResponse {StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.NoWriteNoSeekStreamContent, Headers:
{
Cache-Control: private
Date: Mon, 09 Oct 2017 12:19:28 GMT
Transfer-Encoding: chunked
request-id: 60370069-f7c4-421d-842e-b1ee8573c2c2
client-request-id: 60370069-f7c4-421d-842e-b1ee8573c2c2
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"North Europe","Slice":"SliceB","ScaleUnit":"002","Host":"AGSFE_IN_7","ADSiteName":"DUB"}}
Duration: 3.2626
Content-Type: application/json
}} System.Net.Http.HttpResponseMessage
と応答:
Entity only allows writes with a JSON Content-Type header
とエラーに私もこの見ることができ、十分確認してください。
ContentType {text/plain; charset=utf-8} System.Net.Http.Headers.MediaTypeHeaderValue
を
は、まあ、私は次のエラーを取得することだけやってしかしエラーは意味がありますが、私はJSONを使用するように指示しますが、POSTメソッドでは同じコードを使用していますE:
public async Task UpdateToGraph(object UnSerializedContent, string relativeUrl)
{
string accessToken = await _tokenManager.GetAccessTokenAsync();
HttpContent content = new StringContent(JsonConvert.SerializeObject(UnSerializedContent));
Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
Client.DefaultRequestHeaders.Add("ContentType", "application/json");
string endpoint = "https://graph.microsoft.com/v1.0" + relativeUrl;
var postResponse = Client.PutAsync(endpoint, content).Result;
string serverResponse = postResponse.Content.ReadAsStringAsync().Result;
}
おかげで、 'HttpClientをPutAsJsonAsync'の定義が含まれていない、私は何かが欠けていると思いますか? :) –
@Green_qaueおそらく参照がありません。https://msdn.microsoft.com/en-us/library/system.net.http.httpclientextensions.putasjsonasync(v=vs.118).aspx – Nkosi
見つけました。ありがとう:)別の問題は、 '.Result'を削除すると' postResponse.Content'にアクセスできなくなるということです。 –