2011-01-18 6 views
1

自分のコンピュータのphpファイルに接続し、正しいテキストをjavaプログラムに出力するコードを取得しました。高得点を表示するためにinorderプロジェクトに追加しようとすると、常にIOExceptionがスローされ、なぜそれが分からないのですか?ここに私のコードです。どんな助けもありがとう。URLのためにbufferedReaderがIOExceptionをスローする

 

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"); 
    } 

    } 

} 

答えて

1

私はあなたがPHPのページから期待しているコンテンツの種類を知りません..しかし、次のようにすると、Webサーバからコンテンツを取得するのを助けることができる:

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")); 

今JSONはシングルになりますラインあなたが使用できるように:

String sResponse; 
StringBuilder s = new StringBuilder(); 

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

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

は、それ以外の場合は文字列として全体のコンテンツを取得します

+0

例に合わせてコードを変更しました。これはコンパイルされますが、エミュレータで実行するとIOExceptionがスローされます。私のscore.phpページはJSONの行を吐き出すだけです。 – drewsmug

+0

両方の例の違反行はBufferedReaderです。 BufferedReaderを使用してWeb接続から読み取る最良の方法ではないのですか? – drewsmug

+0

LogCatでエラーを監視してください。マニフェストでインターネット接続許可を提供しているかどうか確認してください。また、コンピュータのローカルホストはエミュレータで10.0.2.2になります。 – Vikas

関連する問題