我试图连接我的Android应用程序到本地主机网址感谢wamp服务器,但它不工作。我在这里的目标是获取json数据并解析这些数据。对于我的测试,我使用的设备不是仿真器,我使用权限在Androidanifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
我的url如下所示:
String url = "http://10.0.2.2:8080/tests/PhpProject1/connectionBDD.php";
我试过:
http://localhost/
http://10.0.2.2:8080/
http://10.0.2.2/
但迄今为止,它从未奏效:
java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 80): connect failed: ECONNREFUSED (Connection refused)
failed to connect to /10.0.2.2 (port 8080): connect failed: ETIMEDOUT (Connection timed out)
java.net.ConnectException: failed to connect to /10.0.2.2 (port 80): connect failed: ETIMEDOUT (Connection timed out)
然后我尝试了一个在互联网上找到的json url测试:http://headers.jsontest.com/
它工作得非常好,我在这个地址得到了json数据。所以我想我的代码是好的,这里的问题是我的本地主机url,我不知道它的确切形式是什么。。我读了很多关于它的文章,但没有找到解决办法。
这是我的代码:
主要活动:
public class MainActivity extends Activity {
private String url = "http://10.0.2.2:8080/tests/PhpProject1/connectionBDD.php";
private ListView lv = null;
private Button bGetData;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final JsonDownloaderTask task = new JsonDownloaderTask(this);
lv = (ListView) findViewById(R.id.list);
bGetData = (Button)findViewById(R.id.getdata);
bGetData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
task.execute(url);
}
});
}
public void jsonTaskComplete(JSONArray data){
//todo
}
}
异步任务:
public class JsonDownloaderTask extends AsyncTask<String, String, JSONArray> {
MainActivity ma;
public JsonDownloaderTask(MainActivity main){
ma = main;
}
@Override
protected JSONArray doInBackground(String... url) {
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONArray jsonArray = null;
try {
jsonArray = jParser.getJSONFromUrl(url[0]);
} catch (IOException e) {
e.printStackTrace();
}
return jsonArray;
}
protected void onPostExecute(JSONArray data){
ma.jsonTaskComplete(data);
}
}
JSONParser:
public class JSONParser {
String data = "";
JSONArray jsonArray = null;
InputStream is = null;
public JSONParser(){}
// Method to download json data from url
public JSONArray getJSONFromUrl(String strUrl) throws IOException{
try{
URL url = new URL(strUrl);
// Creating an http connection to communicate with url
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
// Connecting to url
urlConnection.connect();
// Reading data from url
is = urlConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
String line = "";
while( ( line = br.readLine()) != null){
sb.append(line);
}
is.close();
data = sb.toString();
//br.close();
jsonArray = new JSONArray(data);
}catch(Exception e){
Log.d("Exception while downloading url", e.toString());
}finally{
is.close();
}
return jsonArray;
}
}
首先,您必须在eclipse设置中绑定服务器所在机器的IP地址。
你可以这样做。
右键单击eclipse中的PHP
项目,然后运行配置,然后在Web应用程序中找到
参数
选项卡。现在,这里给出运行服务器的机器的端口和LAN IP地址。
类似这样的内容--port=8888--address=192.168.1.6,然后将URL更新为
http://192.168.1.6:8080/tests/PhpProject1/connectionBDD.php
在我的例子中,这是我的LAN IP地址192.168.1.6,在那里你必须使用网络命令找到它,如
ipconfig
,ifconfig
,并使用该IP地址。
如果您尝试连接到“localhost”,它将解析为Android设备,而不是您自己的localhost(除非您在emulator中运行)。对于开发,我建议在操作栏中添加一个溢出菜单,该菜单有一个名为“设置”的条目,该条目提供用于指定应用程序设置的设置活动,并在“设置”中添加一个“开发人员选项”条目,允许您指定要使用的自定义服务器地址。在开发过程中,您可以使用此选项为应用程序输入自定义服务器地址。(您需要一个真正的服务器地址,该地址实际上可以通过Internet访问,而不是使用localhost)。
IP地址10.0.2.2用于从仿真器获取数据。Localhost将始终指向运行应用程序的emulator/android设备。要让您的设备从pc获取数据,它应该位于同一网络中(通过WiFi连接到路由器),并且您应该使用pc的本地IP地址(通常为192.168.1.x-number)。
问题内容: 由于wamp服务器,我试图将我的android应用程序连接到本地主机url,但它不起作用。我的目标是获取json数据并解析这些数据。对于我的测试,我使用的是设备而不是模拟器,并且使用AndroidManifest.xml中的权限: 我的网址看起来像这样: 我试过了 : 但是到目前为止,它从未起作用: 然后我尝试了在互联网上找到的json url测试:http : //headers.j
问题内容: 我在使用Java rmi时遇到问题: 当我尝试运行服务器时,出现了connectException(请参见下文)。 执行rebind方法时发生异常: 当改用rmi:// localhost:2020 / RemoteDataPointHandler时,它也不起作用。另外,使用默认端口不起作用。我也尝试使用127.0.0.1 ip地址,但效果相同。 我的运行时参数: 问题答案: 当我更换
问题内容: 嗯,连接期间没有错误,但是当尝试保存一些模型/集合时,它会运行一段时间,然后抛出此错误。顺便说一句,我还有另一个连接到同一mongodb服务器的节点进程。非常感谢您的帮助。 问题答案:
我运行的是Apache Tomcat8.5。启动tomcat后,我在浏览器地址栏中输入地址,但会出现以下错误: 如何解决此错误并使tomcat正常运行?
问题内容: 我使用MySql.Data 8.08和.NET Core连接到MySql 5.7.18,但引发了以下异常: 怎么处理呢? 问题答案: 从MySql.Data 7.0.7迁移到8.0.8时,我今天遇到了同样的问题。我能够继续在连接字符串中添加“ SslMode = none”。 您将得到类似以下内容的结果: (用数据库详细信息替换值)
SQLServerException:与主机本地主机端口1433的TCP/IP连接失败。错误:“连接被拒绝:连接。请验证连接属性。确保主机上运行SQL Server实例,并在端口接受TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。 请帮我解决这个问题。