私は5日、このローカルサーバからのJSON配列を取得しようとしていますとのアンドロイド6.0でローカルサーバからJSON配列を取得します:はHttpURLConnectionの
localhost/match_picture/service.php?action=read
と私はそれを行うことはできません!
私はグーグルでそれを検索し、あまりにも多くのドキュメンテーションを読んでください!ここ
は私のコードです:import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class WebService {
public static String readUrl(String server_url) {
BufferedReader bufferedReader = null;
try {
URL url = new URL(server_url);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json+"\n");
}
return sb.toString();
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
、それはMain_Activityだ:それはこのラインでエミュレータとクラッシュした上でruningてさ
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
public class Activity_main extends AppCompatActivity {
private ArrayList<StructAcount> netAcount = new ArrayList<StructAcount>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String result= WebService.readUrl("http://localhast/match_picture/service.php?action=read");
if (result != null) {
try {
JSONArray tasks = new JSONArray(result);
for (int i=0; i<tasks.length(); i++) {
StructAcount acount= new StructAcount();
JSONObject object = tasks.getJSONObject(i);
acount.id = object.getLong("user_id");
acount.name = object.getString("user_name");
acount.email = object.getString("user_email");
netAcount.add(acount);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
for (StructAcount acount: netAcount) {
Toast.makeText(Activity_main.this, "username: " + acount.name + "\n" + "useremail: " + acount.email , Toast.LENGTH_SHORT).show();
}
}
}
:
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
と私はなぜ知りません...
私は5日間を探しています!!!!
私はHttpClientを でそれを行うことができますが、私はMain_Activityでクラスを作成しますユーチューブでvidoeはAsyncTaskを拡張し、doInBackground(文字列...のparams)でconnenctionを作りました
を更新することにしたいです。私はそれを試して、それはcorrecly動作します。私はanoderクラス(WebService)でそれをやりたいので、Main_Activityにどのように結果を送ることができるのか分からないので、AsyncTaskから拡張したクラスを削除します。
あなたの助けのための感謝の 私の下手な英語
私はRetrofitを使っています。これが言われて、私はあなたの質問が重要な情報を欠いていることを知りたがっています。 – sschrass
あなたのアプリがクラッシュすることはありませんか? – greenapps
あなたのアプリがどこで動いているのかわからないのはなぜですか?デバイスまたはエミュレータ?あなたは、PC上のサーバーに接続するために 'localhost'を使うことはできません。 – greenapps