我正在嘗試將 .mp4 文件上傳到 Giphy.com 的 API。它說將文件作為“二進制”發送,我想我對它們的確切含義感到困惑。如果您在“上傳端點”處滾動到底部,則會看到以下文檔。https://developers.giphy.com/docs/這就是我現在所擁有的。我已經嘗試了多個版本(使用StringContent, MultipartFormDataContent, ByteArrayContent, HttpMessages... 等)并且總是得到“400 - Bad Request - No Source Url”(如果你上傳你自己的,文檔說不需要)讓我相信內容未被識別。 public async Task<HttpResponseMessage> UploadVideoAsync(StorageFile file) { using (var stream = await file.OpenStreamForReadAsync()) { byte[] bytes = new byte[stream.Length]; await stream.ReadAsync(bytes, 0, (int)stream.Length); Dictionary<string, string> dic = new Dictionary<string, string> { { "file", Encoding.ASCII.GetString(bytes) }, { "api_key", api_key } }; MultipartFormDataContent multipartContent = new MultipartFormDataContent(); multipartContent.Add(new ByteArrayContent(bytes)); var response = await httpClient.PostAsync($"v1/gifs?api_key={api_key}", multipartContent); var stringResponse = await response.Content.ReadAsStringAsync(); return response; } }
2 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
總是得到一個“400 - 錯誤的請求 - 沒有源 URL”(如果你上傳你自己的,文檔說不需要)這讓我相信內容沒有被識別。
您需要為ByteArrayContent
. 該文檔顯示Request Parameters
包含“文件:如果未提供 source_image_url 則需要字符串(二進制)”。
代碼應如下所示:
MultipartFormDataContent multipartContent = new MultipartFormDataContent(); multipartContent.Add(new ByteArrayContent(bytes),"file");

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
您的代碼似乎與 {api_key} 不匹配。您不在任何地方使用“dic”變量。你可以試試用v1/gifs?api_key=YOUR_API_KEY&file=
。其中 YOUR_API_KEY 應替換為從 giphy 獲得的 API 密鑰。
- 2 回答
- 0 關注
- 305 瀏覽
添加回答
舉報
0/150
提交
取消