2016-04-26 18 views
1

私はwindows formsアプリを書いています。ユーザーは電子メールアドレスを入力する必要があり、有効かどうかを確認する必要があります。httpリクエスト中に無効な操作

Mashape APIが見つかりましたが、例外があります。

"UnirestライブラリのSystem.Net.Http.dllで 'System.InvalidOperationException'型の未処理例外が発生しました。

エラーがmsg.Headers.Add(header.Key, header.Value);

値に沿って発生している:

  • header.Key = "コンテンツタイプ"
  • header.Value = "アプリケーション/ jsonの"

Debuggerさんのコメント:

"要求ヘッダーがHttpRequestMessage、HttpResponseMessageの応答ヘッダー、およびHttpContentオブジェクトのコンテンツヘッダーと共に使用されていることを確認してください。私は、任意の解決策を見つけることができません "

は、誰もがそれを修正する方法任意のアイデアを持っているん

Task<HttpResponse<EWSemail>> response = Unirest.post("https://email.p.mashape.com/") 
    .header("X-Mashape-Key", myKey) 
    .header("Content-Type", "application/json") 
    .header("Accept", "application/json") 
    .body("{\"email\":\"" + tbEmail.Text + "\"}") 
    .asJsonAsync<EWSemail>(); 

Unirestライブラリ:?

private static Task<HttpResponseMessage> RequestHelper(HttpRequest request) 
    { 
     if (!request.Headers.ContainsKey("user-agent")) 
     { 
      request.Headers.Add("user-agent", USER_AGENT); 
     } 

     var client = new HttpClient(); 
     var msg = new HttpRequestMessage(request.HttpMethod, request.URL); 

     foreach (var header in request.Headers) 
     { 
      msg.Headers.Add(header.Key, header.Value); 
     }     // ^^"Content-Type" ^^ "application/json" 

     if (request.Body.Any()) 
     { 
      msg.Content = request.Body; 
     } 

     return client.SendAsync(msg); 
    } 

答えて

0

エラーメッセージは言う:

"リクエストヘッダーがHttpRequestMessage、HttpResponseMessageのレスポンスヘッダー、HttpContenのコンテンツヘッダーで使用されていることを確認してくださいt個のオブジェクトを含むことができる。

Content-Typeという名前は、コンテンツヘッダーを意味する。したがって、msg.Content.Headersではなく、msg.Headersに設定してください。

Mashapeが提供する構文が悪いので、私の記憶が正しければ、あなたはmsg.Content.Headers.ContentType = new MediaHeaderTypeValue("application/json");

関連する問題