Java 使用主机名时,HttpURLConnection无法解析主机
我已经检查了关于同一问题的大多数主题,但我找不到解决方案 我的Java 使用主机名时,HttpURLConnection无法解析主机,java,android,httpurlconnection,Java,Android,Httpurlconnection,我已经检查了关于同一问题的大多数主题,但我找不到解决方案 我的Android应用程序使用HttpURLConnection连接到WCF服务,当我使用托管该服务的机器的IP地址时,它工作正常。但是,当我用主机名替换它时,它无法连接。我的连接方法非常标准: public static String getData(RequestPackage requestPackage) { BufferedReader reader = null; HttpURLConnecti
Android
应用程序使用HttpURLConnection
连接到WCF
服务,当我使用托管该服务的机器的IP地址时,它工作正常。但是,当我用主机名替换它时,它无法连接。我的连接方法非常标准:
public static String getData(RequestPackage requestPackage) {
BufferedReader reader = null;
HttpURLConnection con = null;
String uri = requestPackage.getUri();
String response = "";
try {
URL url = new URL(uri);
con = (HttpURLConnection) url.openConnection();
con.setReadTimeout(requestPackage.getReadTimeout());
con.setConnectTimeout(requestPackage.getConTimeout());
con.setRequestMethod(requestPackage.getMethod());
con.setDoInput(requestPackage.isDoInput());
con.setDoOutput(requestPackage.isDoOutput());
JSONObject user = new JSONObject(requestPackage.getParams());
OutputStream os = con.getOutputStream(); // the exception is thrown here
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(user.toString());
writer.flush();
writer.close();
os.close();
// Get response from the service
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// more code...
}else
// more code
例外情况是:
java.net.UnknownHostException:无法解析主机“myHostname”:否
与主机名关联的地址“
myHostname是我的实际主机名
当我在我的电脑上使用相同的url(包括IP和主机名)时,它可以正常工作
在手机上,它只有在我使用IP时才起作用。无论是在应用程序中还是在手机浏览器中
我已在AndroidManifest.xml
中添加了必要的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
是否可能是对托管服务的服务器具有权限的内容?
它是一个内部服务器,所有机器都连接到一个内部Wi-Fi网络。但它可以和IP一起工作
编辑:我忘了提到我使用的是物理设备而不是模拟器。你能从Android ping myHostname吗?@DaveRlz我不知道怎么做。'String uri=requestPackage.getUri()'。我们看不到您使用的是什么类型的ip。也看不到您将如何提供主机名。请提供指向点的信息。从您的WCF服务所在的位置开始。“myHostname是我的实际主机名。”。我们对此一无所知。您的主机是在internet上还是在LAN中?请在电话上提供指向点的信息。”只有在我使用IP时才有效。无论是在应用程序中还是在移动浏览器中。“。好了。解析主机名与你的应用程序无关。你能从Android ping myHostname吗?@DaveRlz我不知道该怎么做。“String uri=requestPackage.getUri()'。我们看不到您使用的是什么类型的ip。也看不到您将如何提供主机名。请提供指向点的信息。从您的WCF服务所在的位置开始。“myHostname是我的实际主机名。”。我们对此一无所知。您的主机是在internet上还是在LAN中?请在电话上提供指向点的信息。”只有在我使用IP时才有效。无论是在应用程序中还是在移动浏览器中。好了。解析主机名与你的应用程序无关。