У меня есть java-приложение с этим кодом:
URL url = new URL("http://myurl/");
HttURLConnection connection = (HttURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutplut(true);
connection.setRequestProperty("Content-Type", "application/json");
BufferedWriter buffer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
buffer.write("{\"foo:\"0}");
buffer.flush();
Я просто хочу сделать то же самое в строке URL-адреса навигации.
Редактировать
Я нашел инструмент для модификации заголовков. Вот скриншот инструмента разработчика, когда я загружаю свою страницу. Теперь, где я поместил свой объект Json?
И {\"foo\":bar} в теле, а не в параметрах запроса. Кроме того, это недопустимый JSON, что кажется подозрительным.
да, это {\"foo:\"bar}. это не важная часть
@AniketSahrawat, как я поместил заголовок?
@JulienMaret Вы делаете это правильно во фрагменте кода. Я предлагаю вам добавить connection.setRequestProperty("Accept", "application/json"); вместе с ним. Это может или не может изменить вывод сервера. Также строка JSON, которую вы пытаетесь передать, недействительна. Правильный JSON будет "{\"foo\":\"bar\"}"




Если вам нужно отправить JSON данные на ваш URL, ваш код должен быть таким,
URL url = new URL("http://myurl/");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String input = "{\"foo\":\"bar\"}";
OutputStream ous = con.getOutputStream();
ous.write(input.getBytes());
ous.flush();
if (con.getResponseCode() != HttpURLConnection.HTTP_OK)
{
throw new RuntimeException("Failed : HTTP error code : " + con.getResponseCode());
}else
{
BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null)
{
System.out.println(output);
}
}
con.disconnect();
Если вам нужен метод GET, вы можете разместить это,
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
Если вам нужно отправить тело запроса с URL-адресом, вы можете использовать CURL. А также вы можете использовать ПОЧТАЛЬОН. Используя это, вы можете отправлять запросы и получать ответ.
CURL будет вот так,
curl -v -H "Content-Type: application/json" -X POST \
-d '{\"foo\":\"bar\"}' http://myurl/
Вы можете использовать Firefox, чтобы выполнить то, что вам нужно, Прочитайте 2-й ответ.
на самом деле это так.
Я отредактировал вопрос. Я хотел бы не устанавливать новое программное обеспечение и использовать только свой навигатор.
Content-Typeдолжен быть внутри заголовка, а не запроса.