2016-04-06 7 views
0

Dies ist die REST-API, die für die Verbindung mit Visual Studio Team Services (war Visual Studio Online) und vor Ort TFS verwendet wurde. Ich möchte die Header festlegen, damit ich meine Anforderungen komprimieren kann, aber die API-Dokumentation gibt nicht an, dass gzip unterstützt wird. Ich hoffe, dass jemand Erfahrung hat.Unterstützt die TFS Rest API die gzip-Codierung?

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); 
} 

Response ist ein 400 mit folgenden Fehlermeldung:

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

Antwort

1

ich keine Dokumentation über diese entweder finden. Aber ich habe es mit und ohne gzip compress aus Curl getestet. Die Größe der Antwort wird tatsächlich mit gzip komprimiert und die Antwort kann korrekt dekomprimiert werden. Also sollte es unterstützt werden. enter image description here

+0

Gut genug für mich! Kann es kaum erwarten, es auszuprobieren. –

+0

Es sieht so aus, als ob Sie richtig sind, um gezippte Antworten zu erhalten. Ich versuche jedoch, einen Upload auf den Server gzip. Entschuldigung, ich akzeptierte die Antwort nicht. Ich aktualisiere auch die Frage mit meinen bisherigen Ergebnissen. –

+0

@AJMorris Können Sie es mit "Content-Encoding: gzip" versuchen? Und du solltest auch "Content-Type: application/json" in der Kopfzeile behalten, da der von dir gesendete Inhalt immer noch application/json ist. –