创建并发送 HttpResponse 消息

问题描述 投票:0回答:2

给定一个 url 或一个

HttpResponse
实例,我需要发回一个
HttpResponse
(注意 Response 不是 Request),状态代码为 200。我尝试过通用
HttpClient.PostAsync
GetAsync
,但我无法配置状态代码。

这基本上是订阅远程服务事件的握手。我发送一个请求,从服务器返回一个 OK,现在它希望我用我自己的 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);
c# httpresponse
2个回答
0
投票

当您调用

HttpClient
调用时,您正在创建
HttpRequestMessage
。有许多辅助方法(例如一些
PostAsync
重载或
PostAsJsonAsync
)可以让您传入一个普通的旧 C# 对象,然后它会为您包装该对象。这些值在
Content
HttpRequestMessage
属性中设置,由
HttpContent
的实例包装。您还可以完全自由地自己创建这些请求消息,将状态代码和内容设置为您喜欢的任何内容。
HttpResponseMessage
(注意
Response
,而不是
Request
)是您将从客户端调用中返回的类型,您可以使用它来读取发送回给您的响应代码或数据(存储在
HttpResponseMessage.Content
中,而不是与您已经设置的
HttpRequestMessage.Content
混淆)。

也就是说,您可以将请求内容设置为

HttpResponseMessage
的实例,但这会有点奇怪。一般来说,您用于内容的对象应该是简单的对象,它们的存在只是为了定义请求正文的形状(如 JSON)。

本文很好地介绍了基础知识:从 .Net 客户端调用 Web API


-1
投票

您应该能够直接在 HttpResponse 对象上设置状态 像这样的东西...

HttpResponse().StatusCode = 200;

© www.soinside.com 2019 - 2024. All rights reserved.