我正在嘗試使用HttpClient通過Xamarin.iOS中的REST api將文件上傳到Microsoft Azure Blob存儲。到現在爲止一切都好。每次我試圖Content-Length頭添加到客戶端,我得到這個錯誤:Xamarin iOS添加內容長度頭到HttpClient拋出錯誤
System.InvalidOperationException: Content-Length\n at System.Net.Http.Headers.HttpHeaders.CheckName (System.String name) [0x0005f] in /Developer/MonoTouch/Source/mono/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs:253 \n at System.Net.Http.Headers.HttpHeaders.Add (System.String name, IEnumerable`1 values) [0x00011] in /Developer/MonoTouch/Source/mono/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs:171 \n at System.Net.Http.Headers.HttpHeaders.Add (System.String name, System.String value) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs:163
這是我的代碼創建HttpClient的
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Content-Length", blobLength.ToString()); // Error here
client.DefaultRequestHeaders.Add("x-ms-date", dateInRfc1123Format);
client.DefaultRequestHeaders.Add("x-ms-version", msVersion);
Debug.WriteLine("Added all headers except Authorization");
client.DefaultRequestHeaders.Add("Authorization", authorizationHeader);
Debug.WriteLine("Added Authorization header");
//logRequest(requestContent, uri);
Debug.WriteLine("created new http client");
HttpContent requestContent = new ByteArrayContent(blobckContent);
HttpResponseMessage response = await client.PutAsync(uri, requestContent);
我用,而不是添加TryAddWithoutValidation嘗試:
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Length", blobLength.ToString());
錯誤不會被引發,但頭仍然不會被添加。 任何幫助將是偉大的。