C#读取http post结果

C#读取http post结果,c#,httpclient,httpresponse,asp.net-mvc-controller,C#,Httpclient,Httpresponse,Asp.net Mvc Controller,我在MVC控制器中有以下代码,该控制器将示例guid字符串放入HttpResponseMessage中: public class CertifyController : Controller { [HttpPost] public async Task<HttpResponseMessage> NewCertifyOfferRequestAsync(string requestString) { string activityId = "30

我在MVC控制器中有以下代码,该控制器将示例guid字符串放入HttpResponseMessage中:

public class CertifyController : Controller
{
    [HttpPost]
    public async Task<HttpResponseMessage> NewCertifyOfferRequestAsync(string requestString)
    {
        string activityId = "30dd879c-ee2f-11db-8314-0800200c9a66";

        HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
        httpResponseMessage.Content = new StringContent(activityId);
        return httpResponseMessage;
    }

}
我希望在回复中收到activityId“30dd879c-ee2f-11db-8314-0800200c9a66”。但是,activityId从ReadAsStringAsync调用中获取“StatusCode:200,ReasonPhase:'OK',Version:1.1,Content:System.Net.Http.StringContent,Headers:\r\n{\r\n Content Type:text/plain;charset=utf-8\r\n}”


我应该如何更改activityId的分配,以便它获得控制器中生成的activityId

如果是webapi,您应该能够更改方法签名以返回“字符串”而不是HttpResponseMessage

e、 g


对于详细示例,您可以使用visual studio创建一个WebApi web应用程序,并查看“ValuesController.cs”

是否确定activityId不会与所有其他内容一起获得结果?在这里发布整个结果。这是您实际的WebAPI代码吗?看起来您正在返回一个被全部序列化为字符串的
HttpResponseMessage
。@gustavodidomenico我发布了整个activityId响应。Content.ReadAsStringAsync()正在返回。@CodeMaster我发布了我的整个控制器代码。除非您使用的是MVC 6,否则这是一个MVC控制器。WebAPI控制器继承自ApicController。我没有创建HttpResponseMessage,而是将post函数的返回类型更改为Task,并直接返回guid(返回actvityId)。我可以在呼叫控制台应用程序中获取activityId。如果我保持HttpResponseMessage创建的原样,您能告诉我应该如何更改接收代码以获取activityId吗?我还没有尝试过,但我认为如果您强键入它并将内容类型设置为“application/json”返回。然后在客户端,将内容反序列化为对象。你应该得到你想要的。
using (HttpClient client = new HttpClient())
{
    client.BaseAddress = new Uri("http://localhost:84928/");

    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    string requestString = "df5f5587-f1ef-449a-9d20-7f386ea638a8";

    HttpResponseMessage response = await client.PostAsJsonAsync("Certify/NewCertifyOfferRequestAsync", requestString);
    if (response.IsSuccessStatusCode)
    {
        string activityId = await response.Content.ReadAsStringAsync();
        Console.WriteLine("Received activity id: " + activityId);
    }
}
public string Get(int id)
{
    return "value";
}