我在连接到远程 Web 服务器、针对数据库运行 php 脚本时遇到问题。但是,当我将同一个应用程序指向我的机器上运行的本地 Web 服务器时,事情就不起作用了。
这是我用于连接到远程 Web 服务器的代码(它需要身份验证):
(所有网络代码都在 AsyncTask 类中完成。)
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
StringBuilder authentication = new
StringBuilder().append("frankh").append(":").append("vriceI29");
result = Base64.encodeBytes(authentication.toString().getBytes());
httppost.setHeader("Authorization", "Basic " + result);
nameValuePairs.add(new BasicNameValuePair("date", date));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
对于到不使用身份验证的本地服务器的连接,我将注释掉这些行:
//StringBuilder authentication = new
// StringBuilder().append("frankh").append(":").append("vriceI29");
//result = Base64.encodeBytes(authentication.toString().getBytes());
//httppost.setHeader("Authorization", "Basic " + result);
但是,我得到两个不同的错误,这取决于我如何将 url 表达到本地 Web 服务器。
如果我使用这个网址:“http://localhost.shoppinglistapp/fetchlist.php”
我收到此错误:
Error in http connectionjava.net.UnknownHostException: localhost.shoppinglistapp
如果我跳过 url 中的 http 部分,我会收到以下错误:
Error in http connectionjava.lang.IllegalStateException: Target host must not be null,
or set in parameters.
我在这里做错了什么?远程服务器是 Linux Apache 服务器,本地服务器是 IIS 7。本地服务器应该只是在我没有或没有互联网连接时工作,所以这并不重要,但我讨厌不知道为什么事情不起作用。