Сообщение Re[7]: Оффтоп от 21.10.2024 16:38
Изменено 21.10.2024 16:47 bnk
Re[7]: Оффтоп
Здравствуйте, Shmj, Вы писали:
S>И как: https://telegra.ph/ChatGPT-HttpClient-10-21
S>?
Это тупо неправильный код. Content-Type должен быть multipart/form-data (а не "application/pdf"). WebClient генерит его. Еще, accept header непонятно откуда взялся.
У меня сгенерил чуть получше, но тоже косяк в коде (подставлен "Bearer" хотя согласно исходному коду, его быть не должно). В общем так себе. Хотя то что нет bearer я тоже мог бы прозевать я думаю
S>И как: https://telegra.ph/ChatGPT-HttpClient-10-21
S>?
Это тупо неправильный код. Content-Type должен быть multipart/form-data (а не "application/pdf"). WebClient генерит его. Еще, accept header непонятно откуда взялся.
У меня сгенерил чуть получше, но тоже косяк в коде (подставлен "Bearer" хотя согласно исходному коду, его быть не должно). В общем так себе. Хотя то что нет bearer я тоже мог бы прозевать я думаю
async Task<string> UploadFileAsync(string url, string filePath)
{
using var client = new HttpClient();
try
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Properties.Settings.Default.ApiKey);
using var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(await File.ReadAllBytesAsync(filePath));
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
var responseBytes = await response.Content.ReadAsByteArrayAsync();
return Encoding.UTF8.GetString(responseBytes);
}
catch (HttpRequestException)
{
return null;
}
}
Re[7]: Оффтоп
Здравствуйте, Shmj, Вы писали:
S>И как: https://telegra.ph/ChatGPT-HttpClient-10-21
S>?
Это тупо неправильный код. Content-Type должен быть multipart/form-data (а не "application/pdf"). WebClient генерит его в UploadFile. Еще, accept header непонятно откуда взялся.
У меня сгенерил чуть получше, но тоже косяк в коде (подставлен "Bearer" хотя согласно исходному коду, его быть не должно). В общем так себе. Хотя то что нет bearer я тоже мог бы прозевать я думаю
S>И как: https://telegra.ph/ChatGPT-HttpClient-10-21
S>?
Это тупо неправильный код. Content-Type должен быть multipart/form-data (а не "application/pdf"). WebClient генерит его в UploadFile. Еще, accept header непонятно откуда взялся.
У меня сгенерил чуть получше, но тоже косяк в коде (подставлен "Bearer" хотя согласно исходному коду, его быть не должно). В общем так себе. Хотя то что нет bearer я тоже мог бы прозевать я думаю
async Task<string> UploadFileAsync(string url, string filePath)
{
using var client = new HttpClient();
try
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Properties.Settings.Default.ApiKey);
using var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(await File.ReadAllBytesAsync(filePath));
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
var responseBytes = await response.Content.ReadAsByteArrayAsync();
return Encoding.UTF8.GetString(responseBytes);
}
catch (HttpRequestException)
{
return null;
}
}