Я пытаюсь вызвать запрос GET для конкретной конечной точки API, чтобы получить информацию о продукте.У меня есть два проекта NetBeans, один для сервера, на котором у меня есть конечные точки, а другой для моего GUI.
В моем классе GUI у меня есть кнопка, чтобы получить информацию о продукте, и я пытаюсь поместить возвращенный JSON вTextArea в Swing.У меня есть два класса в моем проекте GUI, один для получения клиента, который возвращает json в виде строки, и другой класс для моего jFrame.
Странно, когда я вызываю свой клиентский класс при нажатии кнопки, я получаю:! Исключение в потоке "AWT-EventQueue-0" java.lang.RuntimeException: Failed>: Код ошибки HTTP: 404
Когда я просто запускаю клиентский класс сам, я получаю ожидаемый результатв консоли, не знаете, как это исправить, если кто-то может помочь?
ClientCall.java
public class ClientCall{
String tempOut = "";
public String getProduct() throws ClientProtocolException, IOException {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(
"http://localhost:8080/api/product/1");
getRequest.addHeader("accept", "application/json");
HttpResponse response = httpClient.execute(getRequest);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(
new InputStreamReader((response.getEntity().getContent())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
tempOut = output;
httpClient.getConnectionManager().shutdown();
return tempOut;
}
/*public static void main(String args[]) throws IOException{
ClientCall c = new ClientCall();
System.out.println(c.getProduct());
}*/
}
GUI.java
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
System.out.print("!");
try {
System.out.println(cc.getProduct());
} catch (IOException ex) {
Logger.getLogger(GetDetailsGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
Обратите внимание, в моем коде выше (GUI) я просто выводил ответ, даже это не работает.