Java Android json中的HTTP Get请求
嗨,我不明白为什么这不起作用,我正在尝试检索指定url中“offer”之后的内容,然后显示它,但当我在android屏幕上单击offer按钮时,什么都没有发生。如果可以的话,请帮忙。我在舱单上有上网许可Java Android json中的HTTP Get请求,java,android,json,http,get,Java,Android,Json,Http,Get,嗨,我不明白为什么这不起作用,我正在尝试检索指定url中“offer”之后的内容,然后显示它,但当我在android屏幕上单击offer按钮时,什么都没有发生。如果可以的话,请帮忙。我在舱单上有上网许可 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.Http
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
公共类LoggedIn扩展活动{
AlertDialog alertDialogStores;
ObjectItem[] ObjectItemData = new ObjectItem[5];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logged_in);
// a button to show the pop up with a list view
View.OnClickListener handler = new View.OnClickListener(){
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonShowPopUp:
LoaderTask task = new LoaderTask();
task.execute();
break;
}
}
};
findViewById(R.id.buttonShowPopUp).setOnClickListener(handler);
}
class LoaderTask extends AsyncTask<Void , Void ,String>{
ProgressDialog progressDialog ;
public LoaderTask(){
progressDialog = new ProgressDialog(SplashActivity.this);
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setMessage("Loading app data...");
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog.show();
}
@Override
protected String doInBackground(Void... params) {
return connect("http://ec2-54-175-18-179.compute-1.amazonaws.com/customers/37.json");
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progressDialog.dismiss();
showPopUp(result);
}
}
private String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public String connect(String url)
{
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response;
try {
response = httpclient.execute(httpget);
//Log.i(TAG,response.getStatusLine().toString());
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
String result= convertStreamToString(instream);
instream.close();
return result;
}
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
return null;
}
public void showPopUp(String result){
try{
JSONArray jsonArray = new JSONArray(result);
for(int i = 0 ; i <= 5 ; i++){
JSONObject o = jsonArray.getJSONObject(i);
String http_response = o.getString("offer");
System.out.println("test "+http_response);
//ObjectItemData[i] = new ObjectItem(o);
ObjectItemData[0] = new ObjectItem(http_response);
ObjectItemData[1] = new ObjectItem(http_response);
ObjectItemData[2] = new ObjectItem(http_response);
ObjectItemData[3] = new ObjectItem(http_response);
ObjectItemData[4] = new ObjectItem(http_response);
// adapter instance
ArrayAdapterItem adapter = new ArrayAdapterItem(this, R.layout.list_view_row_item, ObjectItemData);
// create a new ListView, set the adapter and item click listener
ListView listViewItems = new ListView(this);
listViewItems.setAdapter(adapter);
listViewItems.setOnItemClickListener(new OnItemClickListenerListViewItem());
// put the ListView in the pop up
alertDialogStores = new AlertDialog.Builder(LoggedIn.this)
.setView(listViewItems)
.setTitle("Offers")
.show();
}
} catch(Exception e){e.printStackTrace();}
finally{System.out.println("Success");
}
}
AlertDialog alertDialogStores;
ObjectItem[]ObjectItemData=新ObjectItem[5];
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.logged_in);
//显示带有列表视图的弹出窗口的按钮
View.OnClickListener处理程序=新视图。OnClickListener(){
公共void onClick(视图v){
开关(v.getId()){
案例R.id.按钮显示弹出窗口:
LoaderTask任务=新建LoaderTask();
task.execute();
打破
}
}
};
findViewById(R.id.buttonShowPopUp).setOnClickListener(处理程序);
}
类LoaderTask扩展了AsyncTask{
进行对话进行对话;
公共加载任务(){
progressDialog=新建progressDialog(SplashActivity.this);
progressDialog.setUndeterminate(false);
progressDialog.setCancelable(假);
setMessage(“正在加载应用程序数据…”);
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog.show();
}
@凌驾
受保护字符串doInBackground(无效…参数){
返回连接(“http://ec2-54-175-18-179.compute-1.amazonaws.com/customers/37.json");
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
progressDialog.disclose();
显示弹出窗口(结果);
}
}
私有字符串convertStreamToString(InputStream为){
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is));
StringBuilder sb=新的StringBuilder();
字符串行=null;
试一试{
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
is.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
使某人返回字符串();
}
公共字符串连接(字符串url)
{
HttpClient HttpClient=新的DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(url);
HttpResponse响应;
试一试{
response=httpclient.execute(httpget);
//Log.i(标记,response.getStatusLine().toString());
HttpEntity=response.getEntity();
如果(实体!=null){
InputStream instream=entity.getContent();
字符串结果=convertStreamToString(流内);
流内关闭();
返回结果;
}
}捕获(客户端协议例外e){
}捕获(IOE异常){
}
返回null;
}
公共无效显示弹出窗口(字符串结果){
试一试{
JSONArray JSONArray=新JSONArray(结果);
对于(int i=0;i类装入器任务扩展异步任务{
进行对话进行对话;
公共加载任务(){
progressDialog=新建progressDialog(SplashActivity.this);
progressDialog.setUndeterminate(false);
progressDialog.setCancelable(假);
setMessage(“正在加载应用程序数据…”);
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog.show();
}
@凌驾
受保护字符串doInBackground(无效…参数){
返回连接(“http://ec2-54-175-18-179.compute-1.amazonaws.com/customers/37.json");
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
progressDialog.disclose();
显示弹出窗口(结果);
}
}
私有字符串convertStreamToString(InputStream为){
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is));
StringBuilder sb=新的StringBuilder();
字符串行=null;
试一试{
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
is.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
使某人返回字符串();
}
公共字符串连接(字符串url)
{
HttpClient HttpClient=新的DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(url);
HttpResponse响应;
试一试{
response=httpclient.execute(httpget);
//Log.i(标记,response.getStatusLine().toString());
HttpEntity=response.getEntity();
如果(实体!=null){
InputStream instream=entity.getContent();
字符串结果=convertStreamToString(流内);
流内关闭();
返回结果;
}
}捕获(客户端协议例外e){
}捕获(IOE异常){
}
返回null;
}
公共无效显示弹出窗口(字符串结果){
试一试{
JSONArray JSONArray=新JSONArray(结果);
for(int i=0;i
并称之为“完成任务”
新建LoaderTask().execute();
class LoaderTask extends AsyncTask<Void , Void ,String>{
ProgressDialog progressDialog ;
public LoaderTask(){
progressDialog = new ProgressDialog(SplashActivity.this);
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setMessage("Loading app data...");
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog.show();
}
@Override
protected String doInBackground(Void... params) {
return connect("http://ec2-54-175-18-179.compute-1.amazonaws.com/customers/37.json");
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progressDialog.dismiss();
showPopUp(result);
}
}
private String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public String connect(String url)
{
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response;
try {
response = httpclient.execute(httpget);
//Log.i(TAG,response.getStatusLine().toString());
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
String result= convertStreamToString(instream);
instream.close();
return result;
}
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
return null;
}
public void showPopUp(String result){
try{
JSONArray jsonArray = new JSONArray(result);
for(int i = 0 ; i < jsonArray.length() ; i++){
JSONObject o = jsonArray.getJSONObject(i);
String http_response = o.getString("offer");
System.out.println("test "+http_response);
ObjectItemData[i] = new ObjectItem(http_response);
}
//and populate your listview here
} catch(Exception e){e.printStackTrace();}
finally{System.out.println("Success");
}
}