创建和发送HttpResponse消息

时间:2013-10-25 20:41:44

标签: c# httpresponse

如果是网址或HttpResponse实例,我需要使用状态代码发送回HttpResponse(请注意响应而非请求) 200.我尝试过通用HttpClient.PostAsyncGetAsync,但我无法配置状态代码。

这基本上是订阅远程服务事件的握手。我发送了一个请求,从服务器返回 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);

2 个答案:

答案 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