2

windows formsユーザーがメールアドレスを入力する必要があるアプリを作成していますが、それが有効かどうかを確認する必要があります。

見つけまし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>();

ユニレスト ライブラリ:

    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);
    }
4

2 に答える 2

0

エラーメッセージには次のように記載されています。

「要求ヘッダーが HttpRequestMessage で、応答ヘッダーが HttpResponseMessage で、コンテンツ ヘッダーが HttpContent オブジェクトで使用されていることを確認してください。」

Content-Typeは、その名前が示すように、コンテンツ ヘッダーです。したがって、msg.Content.Headersではなくに設定してくださいmsg.Headers

私の記憶が正しければ、次の方法で直接設定できますmsg.Content.Headers.ContentType = new MediaHeaderTypeValue("application/json");

于 2016-04-26T03:20:44.750 に答える
0

OK、Mashape が提供する構文が悪いため、機能しません。この場合、header.Key は「ContentType」である必要があります (参照: https://msdn.microsoft.com/en-us/library/system.net.httprequestheader%28v=vs.110%29.aspx )。

ゴミの投稿で申し訳ありません。@codran に感謝します。あなたの回答は、この回答を見つけるのに役立ちました。

于 2016-04-26T04:12:19.780 に答える