如何在Framework 3.5中发布json并获取文件流?

时间:2018-05-08 07:02:17

标签: c# asp.net .net-3.5

我写了一个web服务(web api 2)并使用http Client成功测试了它。其中一个服务获取了一个json字符串并对其进行了验证,然后返回了一个适当的下载流。

现在虽然我发现我需要编写一个3.5 Framework Client来处理整个Transfer(发布json数据然后获取文件)。

作为使用Web客户端获取文本的示例:

private string GetTextFromUrl(string url, JObject jsonObject)
{
    WebClient webClient = new WebClient();
    webClient.Headers.Add("content-type", "application/json");

    return Encoding.ASCII.GetString(webClient.UploadData(url, Encoding.Default.GetBytes(jsonObject.ToString())));
}

现在虽然我有点不知所措。从我看到的webclient开始,只有OpenRead和DownloadFile返回流,而其他所有东西都返回一个字节数组。

两者虽然只使用URL而且不做任何帖子(比如上传数据)。所以我想知道:有没有可能将json数据发布到URL并在Response with Framework 3.5中接收流? (不一定限于webclient)。

编辑: 按要求澄清:客户端将json字符串发布到服务器并在Response中接收流。这就是我试图实现的目标(客户方面明智)。

1 个答案:

答案 0 :(得分:0)

我认为你有两个选择,但这不是真正的问题。我想你错过了JSON.NET

使用WebClient 在.NET 3.5中使用webclient的帖子通过指定标题和“POST”方法完成,如下所示。

System.Net.WebClient client = new System.Net.WebClient();
client.Headers.Add("content-type", "application/json");//set content-type header here
string response = Encoding.ASCII.GetString(client.UploadData("http://localhost:1111/Service.svc/SignIn", "POST", Encoding.Default.GetBytes("{\"Data\": \"JSON DATA HERE\"}")));

通常,当您执行上述操作时,您应该从上传方法获得响应,您可以将其分配给变量“响应”,然后使用JSON.NET。

请在此处查看此link。他没有指定方法,但使用JSON.NET,似乎适合他。

使用WebRequest 您也可以尝试WebRequest。请参阅webrequest示例

的此链接

希望这有帮助。