为了方便看我就简介的写写,需要详细信息的请回复告诉我!!
1、首先是发起Activity:
下面是那个AsyncTask:
服务器是没有问题的!!
大家可以把下面的地址输入到网址中去,网页返回的应该是0、1、2,三个中的一个
我在测试上述代码的时候,如果服务器通过tomcat架设到本地,手机访问就可以获得返回值
但是服务器架设到外网上,就连下面这个都执行不完
导致result是null
1、首先是发起Activity:
import java.net.URL;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import com.andecy.myfirstapp.R.id;
import com.andecy.myfirstapp.R.layout;
public class Cpt9_GetRegisterAtyDialog extends Activity implements
OnClickListener {
private Button btn_ok;
private String get_url;
private Cpt9_GetRegisterAsync mAsync;
@Override
protected void onCreate(Bundle savedInstanceState) {
initViews();
super.onCreate(savedInstanceState);
StickMethod();
}
private void initViews() {
setContentView(layout.cpt9_register_dialog);
btn_ok = (Button) findViewById(id.btn_cpt9_register_ok);
btn_ok.setOnClickListener(this);
}
@Override
public void onClick(View v) {
registerAcount();
}
private boolean registerAcount() {
mAsync = new Cpt9_GetRegisterAsync();
get_url = "http://t_guet.jd-app.com/servlet/GetRegisterServlet?Name=andecy&Pwd=123456&Email=andecy@foxmail.com";
mAsync.execute(get_url);
return false;
}
private void StickMethod() {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectAll() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
}
下面是那个AsyncTask:
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.StrictMode;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;
public class Cpt9_GetRegisterAsync extends AsyncTask<String, Void, String> {
private HttpClient mHttpClient;
private HttpGet mHttpGet;
private HttpResponse mHttpResponse;
private HttpEntity mHttpEntity;
@Override
protected String doInBackground(String... params) {
String result = null;
Log.i("TAG", "doInBackground--->start");
try {
mHttpClient = new DefaultHttpClient(httpConfig());
mHttpGet = new HttpGet(params[0]);
Log.i("TAG", "doInBackground--->before execute");
mHttpResponse = mHttpClient.execute(mHttpGet);
Log.i("TAG", "doInBackground--->after execute");
int bacckCode = mHttpResponse.getStatusLine().getStatusCode();
Log.i("TAG", "doInBackground--->bacckCode"+bacckCode);
if (bacckCode == 200) {
mHttpEntity = mHttpResponse.getEntity();
result = EntityUtils.toString(mHttpEntity);
} else {
result = -1;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("TAG", "doInBackground--->over");
return result;
}
@Override
protected void onPostExecute(String result) {
Log.i("TAG", "onPostExecute--->start:" + result);
super.onPostExecute(result);
}
private HttpParams httpConfig() {
HttpParams mhParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(mhParams, 3 * 1000);
HttpConnectionParams.setSoTimeout(mhParams, 5 * 1000);
HttpConnectionParams.setSocketBufferSize(mhParams, 8192);
return mhParams;
}
}
服务器是没有问题的!!
大家可以把下面的地址输入到网址中去,网页返回的应该是0、1、2,三个中的一个
get_url = "http://t_guet.jd-app.com/servlet/GetRegisterServlet?Name=andecy&Pwd=123456&Email=andecy@foxmail.com";
我在测试上述代码的时候,如果服务器通过tomcat架设到本地,手机访问就可以获得返回值
但是服务器架设到外网上,就连下面这个都执行不完
mHttpResponse = mHttpClient.execute(mHttpGet);
导致result是null
mHttpEntity = mHttpResponse.getEntity();
result = EntityUtils.toString(mHttpEntity);