2016-04-26 142 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

如果我沒記錯的話,你可以通過msg.Content.Headers.ContentType = new MediaHeaderTypeValue("application/json");