7 Stimmen

bufferedReader für URL throws IOException

Ich konnte meinen Code mit der php-Datei meines Computers verbinden und den richtigen Text in einem Java-Programm ausgeben. Als ich versucht habe, ihn zu meinem Android-Projekt hinzuzufügen, um Highscores anzuzeigen, löst er immer eine IOException aus und ich kann nicht herausfinden, warum. Hier ist mein Code. Für jede Hilfe wäre ich dankbar.

package com.enophz.spacetrash;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Scores extends Activity {

 //private TextView HscoreText;

 /\*\* Called when the activity is first created. \*/
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.scores);

        Button next = (Button) findViewById(R.id.Button01);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent myIntent = new Intent(view.getContext(), Menu.class);
                startActivity(myIntent);
            }

        });

        TextView HscoreText = (TextView) findViewById(R.id.text);

        try
        {
         URL page = new URL("http://192.168.1.108/score.php");
         URLConnection pageconnection = page.openConnection();
         BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                    pageconnection.getInputStream()));

         in.close();

            HscoreText.setText("It Worked!");
        }
        catch(MalformedURLException e)
        {
         HscoreText.setText("MalformedURL");
        }
        catch (IOException e)
        {
         HscoreText.setText("IOException");
  }

    }

}

3voto

Vikas Punkte 23324

Ich weiß nicht, welche Art von Inhalt Sie von der php-Seite erwarten.. aber folgendes kann Ihnen helfen, den Inhalt vom Webserver zu erhalten:

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(myUrl);

HttpResponse response = httpClient.execute(httpGet, localContext);
BufferedReader reader = new BufferedReader(new InputStreamReader(
    response.getEntity().getContent(), "UTF-8"));

Jetzt wird JSON einzeilig sein, so dass Sie verwenden können:

String sResponse = reader.readLine();
JSONObject JResponse = new JSONObject(sResponse);

Andernfalls erhalten Sie den gesamten Inhalt als Zeichenkette:

String sResponse;
StringBuilder s = new StringBuilder();

while ((sResponse = reader.readLine()) != null) {
s = s.append(sResponse);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X