Сервер вернул код ответа HTTP: 500 с HttpUrlConnection в Android - PullRequest
1 голос
/ 09 июля 2011

Я Post ввожу некоторые данные в определенный 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();        
    }
}}

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

Ответы [ 2 ]

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

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

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