【问题标题】:Does the TFS Rest API support gzip encoding?TFS Rest API 是否支持 gzip 编码?
【发布时间】:2016-08-11 08:20:10
【问题描述】:

这是用于连接 Visual Studio Team Services(以前是 Visual Studio Online)和本地 TFS 的 REST API。我想设置标头以便我可以压缩我的请求,但 API 文档没有指定支持 gzip。我希望有人可能有经验。

using (var wc = new WebClient())
{
    wc.Credentials = TfsCredentials;
    wc.Headers[HttpRequestHeader.ContentEncoding] = "gzip";
    wc.Headers[HttpRequestHeader.ContentType] = "application/json";
    var gzipByteArray = GZipBytes(serializedJson);
    var uploadResponse = wc.UploadData(repoUri, gzipByteArray);
    return Encoding.UTF8.GetString(uploadResponse);
}

响应为 400,并带有以下错误消息:

The body of the request contains invalid Json. Parameter name: contentStream

【问题讨论】:

    标签: tfs azure-devops tfs-2015


    【解决方案1】:

    我也找不到任何关于此的文档。但是我在使用和不使用 curl 的 gzip 压缩的情况下对其进行了测试。响应的大小确实是用gzip压缩的,可以正确解压响应。所以应该支持。

    【讨论】:

    • 对我来说已经足够了!迫不及待想尝试一下。
    • 看起来您获得 gzip 压缩响应是正确的。但是,我正在尝试将 gzip 上传到服务器。抱歉,我不接受答案。到目前为止,我还在用我的结果更新问题。
    • @AJMorris 你可以试试“内容编码:gzip”吗?而且您还应该在标头中保留“Content-Type: application/json”,因为您发送的内容仍然是 application/json。
    • 谢谢@Eddie。那是我实际拥有的,但我输入的方式不同。更新了问题以包含实际代码。似乎 TFS 服务器没有检查该标头,而只是试图将字节数组反序列化为 JSON 字符串。只是猜测。
    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 2016-10-18
    • 2011-02-16
    • 2020-01-27
    • 2014-12-07
    • 2021-11-29
    • 2019-07-23
    • 1970-01-01
    相关资源
    最近更新 更多