当前位置: 首页 > 知识库问答 >
问题:

不可解析StackExchange API响应

东郭俊楠
2023-03-14

我编写了一个小程序来分析来自StackExchange API的配置文件数据,但是API返回给我的是不可分析/不可读的数据。

接收数据:(使用C#自行下载)

public static string DownloadString(this string link)
{
    WebClient wc = null;
    string s = null;
    try
    {
        wc = new WebClient();
        wc.Encoding = Encoding.UTF8;
        s = wc.DownloadString(link);
        return s;
    }
    catch (Exception)
    {
        throw;
    }
    finally
    {
        if (wc != null)
        {
            wc.Dispose();
        }
    }
    return null;
}
public string DownloadString2(string link)
{
    WebClient client = new WebClient();
    client.Encoding = Encoding.UTF8;
    Stream data = client.OpenRead(link);
    StreamReader reader = new StreamReader(data);
    string s = reader.ReadToEnd();
    data.Close();
    reader.Close();
    return s;
}

如何从API中获取可读数据?少了什么吗?

共有1个答案

商风华
2023-03-14

在我看来输出被压缩了。您可以使用gzipstream,它可以在system.io.compression中找到,以便解压缩字节。

public static string DownloadString(this string link)
{
    WebClient wc = null;
    try
    {
        wc = new WebClient();
        wc.Encoding = Encoding.UTF8;
        byte[] b = wc.DownloadData(link);

        MemoryStream output = new MemoryStream();
        using (GZipStream g = new GZipStream(new MemoryStream(b), CompressionMode.Decompress))
        {
            g.CopyTo(output);
        }

        return Encoding.UTF8.GetString(output.ToArray());
    }
    catch
    {

    }
    finally
    {
        if (wc != null)
        {
            wc.Dispose();
        }
    }
    return null;
}
 类似资料:
  • 问题内容: 我使用kso​​ap2 lib从android客户端与SOAP Web服务进行通信。ksoap团队做的很棒,但是问题是,没有一个很好的例子说明如何在不同方面正确使用它。例如我得到以下数据的肥皂响应: 它是一个复杂的对象,或者是StatusSetting对象的集合。当我尝试获取SoapObject的属性时,只有1个属性,其中所有数据均为字符串。它也不能解析为json。令人难以置信的是,没

  • 问题内容: 我使用以下函数通过jQuery AJAX发布表单: 它发布正常,但我无法解析响应,它记录到控制台,如下所示 我相信这是我正在寻找的回应。 但是,当我尝试执行响应对象的任何其他成员时,它就是。 任何建议表示赞赏。 问题答案: 呼唤 应该可以访问所需的数据。 现在应该显示“ 1”

  • 我尝试将字符串转换为日期。

  • 我有以下 REST API 响应: 我的查询是 : - 我如何根据查询名称作为库马尔来获得经验。 例如:我需要找到“Kumar”的名字并获得他的empid。(也就是说,按名称搜索并获取他的empid作为响应)我能够获取响应并将其存储在response对象中。但是,如何从响应对象遍历和查询以获得所需的值。 此外,我还尝试检索为: 当我打印响应时,我得到了类似[1234,5678]的empid集合,而

  • 其答复如下: 我相信问题出在响应前面的jsonFlickrApi上。 执行以下代码时: }

  • 问题内容: 我无法使用Java(使用Bonita Open Solution BPM)解析SOAP响应。我有以下SOAP响应(在IBM Content Manager中搜索文档; SOAP响应返回1个匹配的文档) 我想获取文件名( ICCFileName =“ Golem_Artikel.txt” )和此文件的网址(< cm:URL value =“ http://cmwin01.ebusines