gpt4 book ai didi

c# - 如何返回 Json 响应

转载 作者:行者123 更新时间:2023-11-30 18:32:47 26 4
gpt4 key购买 nike

我正在尝试在我的 C# restserviceA 中实现一个方法 A,它向客户端返回一条 Json 消息。

该方法只是对内部托管服务进行另一个 restservice 调用,如下所示 ResterviceB

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.Method = "GET";
resp = req.GetResponse() as HttpWebResponse;
resp = req.GetResponse() as HttpWebResponse;
Encoding enc = Encoding.UTF8;
loResponseStream = new StreamReader(resp.GetResponseStream(), enc);
string strResponse = loResponseStream.ReadToEnd();
return resp;

此方法将从 RestServiceB 获取 json 格式的响应。我如何才能以 json 格式本身将相同的 json 字符串返回给客户端。

我尝试将如下的 webmethod 属性放入我的 methodA,但我从 RestServiceA 的 MethodA 获得的响应始终为字符串格式。

SVC接口(interface):

[OperationContract ]
[WebGet(UriTemplate = "getresults", ResponseFormat = WebMessageFormat.Json)]
String GetResults();

SVC代码

public String GetResults()
{
string str=//Call RestServiceB which returns response as below.
"query":"myquery", "results": [ {"name":"result1", "type":"suggest"}, {"name":"result2", "type":"type2"}]"
return str;
}

这里有什么建议吗?谢谢。

最佳答案

您的 JSON 字符串被包裹在另一个 JSON 字符串中。

返回原始 JSON 字符串的一种方法是将 GetResults() 的输出类型更改为 Stream 而不是字符串。

    public System.IO.Stream GetResults()
{
string str=//Call RestServiceB which returns response as below.
"query":"myquery", "results": [ {"name":"result1", "type":"suggest"}, {"name":"result2", "type":"type2"}]"
WebOperationContext.Current.OutgoingResponse.ContentType =
"application/json; charset=utf-8";
return new MemoryStream(Encoding.UTF8.GetBytes(str));
}

[OperationContract ]
[WebGet(UriTemplate = "getresults")]
String GetResults();

关于c# - 如何返回 Json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18339069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com