如果是网址或HttpResponse
实例,我需要使用状态代码发送回HttpResponse
(请注意响应而非请求) 200.我尝试过通用HttpClient.PostAsync
和GetAsync
,但我无法配置状态代码。
这基本上是订阅远程服务事件的握手。我发送了一个请求,从服务器返回 OK ,现在它希望我用我自己的 OK 回复确定。
有关如何解决此问题的任何想法?我没有收到回复的请求。
var resp = new HttpResponseMessage(HttpStatusCode.OK);
// need to sent this to the url. no content necessary.
以下是我无法做的事情:
var client = new HttpClient();
var resp = await client.GetAsync(url);
-------------------
var content = new ByteArrayContent(new byte[0]);
var client = new HttpClient();
var resp = await client.PostAsync(url, content);
答案 0 :(得分:0)
您应该能够直接在HttpResponse对象上设置状态 像这样......
HttpResponse().StatusCode = 200;
答案 1 :(得分:0)
当您调用HttpClient
来电时,您正在创建HttpRequestMessage
个。有一些辅助方法(比如一些PostAsync
重载或PostAsJsonAsync
)允许你传入一个普通的旧C#对象,然后它会为你包装。这些值在Content
的{{1}}属性中设置,由HttpRequestMessage
的实例包装。您也可以完全自由地创建这些请求消息,将状态代码和内容设置为您喜欢的任何内容。 HttpContent
(注意HttpResponseMessage
,而非Response
)是您从客户来电中获取的类型,您可以使用该类型读取回复给您的回复代码或数据(已存储)在Request
中,不要与您已设置的HttpResponseMessage.Content
混淆。
也就是说,您可以将您的请求内容设置为HttpRequestMessage.Content
的实例,但这有点奇怪。通常,用于内容的对象应该是简单的对象,只是为了定义请求主体的形状(如JSON)。
本文很好地介绍了基础知识:Calling a Web API from a .Net Client