[英]HttpClient Download Image From URL Then Upload Image
我有一個位於 url 中的圖像。
https://somecdn/content/myimage.png
我想將此字符串傳遞給我的 API,將圖像下載到 memory 然后上傳到另一個 API。
我正在使用從我們的 swagger 生成的 api 客戶端,它采用 IO.ZF7B44B44CAFFD5C58A72E7D 類型
代碼如下。
public async Task<int> UploadPicture(string fileUrl)
{
var otherApiClient = await _otherApiClient.Build();
var fileRetrievalClient = new HttpClient();
var fileResponse = await fileRetrievalClient.GetAsync(fileUrl);
var newId = await otherApiClient.UploadPictureAsync(file: await fileResponse.Content.ReadAsStreamAsync());
return newId;
}
通常,當通過前端調用時,類型設置正確。
內容處置:表單數據; 名稱=“文件”; filename="yadayada.png" 內容類型:image/png
但是在我的代碼中,Content-Type 是錯誤的。
Content-Type: application/octet-stream Content-Disposition: form-data; 名稱=文件; 文件名=未知
我該如何糾正這一點。
你可以這樣做:
var fileResponse = await fileRetrievalClient.GetAsync(fileUrl);
byte[] bytes = await fileResponse.Content.ReadAsByteArrayAsync();
using (var content = new ByteArrayContent(bytes))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
content.Headers.TryAddWithoutValidation("Content-Disposition", "application/octet-stream name=test");
var postResponse = await otherApiClient.PostAsync(uri, content);
}
HttpClient沒有名為UploadPictureAsync的方法。 這表明變量otherApiClient的類型不是HttpClient 。
您需要檢查可以傳遞給UploadPictureAsync的其他參數,並查看如何使用fileResponse.Headers中的值傳遞自定義標頭
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.