android无法访问自己编写的servlet服务器

馨缘6009 发布于 2013/05/14 17:53
阅读 1K+
收藏 0
我的servlet是:
public class AnGPSTest extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String para = request.getParameter("param");
		System.out.println("a Client has Connectted!");
		System.out.println(para);
	}

}


经网页访问测试,没有问题:http://localhost/....(端口我已经修改为80)
我的android测试程序是:

package com.xinyuan.android2javatest;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		String urlStr = "http://115.150.140.188/anWeb/anGPSTest";
		
		URL url = null;
		try {
			//get URL
			url = new URL(urlStr);
			//get URL connection
			HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
			urlConn.setDoInput(true);
			urlConn.setDoOutput(true);
			urlConn.setRequestMethod("POST");
			urlConn.setUseCaches(false);
			 // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的  
			urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
			urlConn.setRequestProperty("Charset", "utf-8");
			//config all the info then build a connection
			urlConn.connect();
			//get OutputStream
			OutputStream ops = urlConn.getOutputStream();
			DataOutputStream dops = new DataOutputStream(ops);
			//wirte out parameters
			dops.writeChars("param=this is a test");
			dops.flush();
			dops.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}
程序可以正常运行,就是服务器那边没有反应
刚刚开始我的urlStr="http://localhost/...."
后来有人说不能用这个地址访问,于是我通过ipconfig找到自己的ip
可是结果还是没有响应
加载中
0
馨缘6009
馨缘6009
求解..................
0
红薯
红薯
你这个 android 程序执行不会有任何信息,你怎么知道它无法访问呢?
0
pseudo
pseudo
android手机里的localhost是手机自己的ip,所以不能用localhost。确定你的请求路径没有问题,如果路径什么的都没问题那你就抓个网页访问的数据包,然后在你的activity中的urlconnection设置请求头参数与你抓的数据包的一样再试试
0
excepiton
excepiton
建议你换其他端口再去试,说不定是80端口的问题
0
zhang1hang2
zhang1hang2
一般访问本机地址用10.10.2.2
0
daishunchao
daishunchao
我记得上次我做用 HttpClient包通信的。
0
loki_lan
loki_lan
没有响应就对了,如果没有连接上,在urlConn.connect()这句就会抛出异常。
返回顶部
顶部