Я пытаюсь отправить эквивалент параметра curl '-F' на указанный URL.Аргументы HttpPost, отправленные на сервер, возвращают ошибку HTTP 500
Это то, что команда выглядит, как с помощью Curl:
curl -F"optionName=cool" -F"[email protected]" http://myurl.com
Я считаю, что я прав в использовании класса HttpPost в Apache httpcomponents библиотеки.
Я предоставляю имя = значение типа параметра. ОпцияName - это просто строка, а «файл» - это файл, который я сохранил локально на своем диске (следовательно, @myFile указывает его локальный файл).
Если я печатаю ответ, я получаю ошибку HTTP 500 ... Я не уверен, что вызывает проблему здесь, потому что сервер отвечает так же, как и при использовании команды Curl, упомянутой выше. Есть ли какая-то простая ошибка, которую я делаю при просмотре кода ниже?
HttpPost post = new HttpPost(postUrl);
HttpClient httpClient = HttpClientBuilder.create().build();
List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
nvps.add(new BasicNameValuePair(optionName, "cool"));
nvps.add(new BasicNameValuePair(file, "@myfile"));
try {
post.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
HttpResponse response = httpClient.execute(post);
// do something with response
} catch (Exception e) {
e.printStackTrace();
}
Тайна кода решена, thx ssssteffff! – CODEBLACK