我正在编写一个windows forms应用程序,用户必须输入电子邮件地址,我需要检查它是否有效。
我找到了Mashape API,但我得到了一个例外;
“System.InvalidOperationException类型的未处理异常发生在System.Net.Http.dll中”错误出现在Unirest库.中
错误发生与msg.Headers.Add(header.Key, header.Value);一致
价值是:
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);
}发布于 2016-04-26 03:20:44
错误消息说:
“请确保请求标头与HttpRequestMessage一起使用,响应标头用于HttpResponseMessage,内容标头用于HttpContent对象。”
顾名思义,Content-Type是一个内容头。因此,将其设置在msg.Content.Headers上,而不是msg.Headers上。
如果我没记错的话,你可以通过msg.Content.Headers.ContentType = new MediaHeaderTypeValue("application/json");直接设置它
发布于 2016-04-26 04:12:19
好的,它不起作用,因为Mashape提供的语法不好。在这种情况下,header.Key必须是"ContentType“(引用:https://msdn.microsoft.com/en-us/library/system.net.httprequestheader%28v=vs.110%29.aspx)。
对不起,我的垃圾邮件,谢谢@codran,您的回答帮助我找到了这个答案。
https://stackoverflow.com/questions/36854577
复制相似问题