Сервер вернул код ответа HTTP: 500 с HttpUrlConnection в Android

1

Я Post ING некоторых данных в определенный URL, используя следующий код:

import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class LookupPOST {

public static void main(String[] args) throws Exception 
{
        String accountlookup = "<account>"+
                                "<name>N*</name>"+
                                "<type></type>"+
                                "<accountaddress>"+
                                    "<address></address>"+
                                    "<state></state>"+
                                    "<zip></zip>"+
                                    "<city></city>"+
                                    "<country></country>"+
                                    "<county></county>"+
                                "</accountaddress>"+
                               "</account>";

        URL url = new URL(" http://localhost:8080/Sfacgi/accounts/lookUpaccount");
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("authenticate", "BBUSER1:BBUSER1");
        connection.setRequestProperty("Content-Type", "application/xml");
        connection.setRequestProperty("pinno", "2526121F96");
        connection.setRequestProperty("appversion", "BBV15");
        connection.setDoOutput(true);
        connection.setInstanceFollowRedirects(false);

         OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
         writer.write(accountlookup);
         writer.close();

         if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) 
         {
             System.out.println(" Success ");
         } 
         else 
         {
             System.out.println("Server returned HTTP error code :"+connection.getResponseCode());
         }

}}

Он успешно отправляет сообщения, но когда я извлекаю данные, это дает мне следующую ошибку:

Excpetion = java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/Sfacgi/accounts/lookUpaccount
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:88080/Sfacgi/accounts/lookUpaccount
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1403)
at com.jp.look.LookupGet.main(LookupGet.java:31)

Я использую следующий код:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class LookupGet 
{

    public static void main(String[] args) throws Exception 
{   
    try
    {
        URL url = new URL("http://localhost:8080/Sfacgi/accounts/lookUpaccount");
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("GET");
        connection.setRequestProperty("authenticate", "BBUSER1:BBUSER1");
        connection.setRequestProperty("Content-Type", "application/xml");
        connection.setRequestProperty("pinno", "2526121F96");
        connection.setRequestProperty("appversion", "BBV15");
        connection.setDoOutput(true);
        connection.setInstanceFollowRedirects(false);
        int timeoutMs=500000;
        connection.setConnectTimeout(timeoutMs);
        connection.setReadTimeout(timeoutMs);

        //InputStream is = url.openStream();

        InputStream is1 = connection.getInputStream();

        BufferedReader reader = new BufferedReader(new InputStreamReader(is1));

            String data;

            while ((data = reader.readLine()) != null) 
            {
                 System.out.println(data);
            }
            reader.close();

    }
    catch(Exception e)
    {
        System.out.println(" Excpetion = " + e);
        e.printStackTrace();        
    }
}}

Может ли кто-нибудь сказать мне, где я ошибаюсь в своем коде? Какие-либо предложения.

  • 1
    Что произойдет, если вы отправите запрос через браузер? Работает ли запрос GET в целом?
  • 1
    Вы используете локальный URL-адрес, возможно, он не сможет подключиться, поэтому сначала попробуйте этот URL-адрес в браузере устройства.
Теги:
httpurlconnection

2 ответа

1
Лучший ответ
  1. Локальный хост доступен, поскольку вы можете выполнять почтовый вызов.
  2. Код ошибки 500 указывает, что ваш сервер не может обрабатывать запрос по какой-либо причине. главным образом, должно быть какое-то исключение, или URL-адрес не отображается.
  3. В случае исключения прочитайте метод ErrorStream вместо Inputstream, чтобы узнать об ошибке Пример connection.getErrorStream()
1

localHost свой код, я думаю, что вы пытаетесь прочитать данные из вашего localHost Если вы хотите подключиться к вашему локальному хосту, вам нужно указать IP Address вашего компьютера, например

URL url = new URL("http://IPAddressOfComputer/Sfacgi/accounts/lookUpaccount");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню