0

我正在创建一个内置于 Visual Basic 2010 的服务器,该程序可以插入/更新/删除到我使用的数据库。我创建了一个本地 Web 服务,用于将服务器上的数据库与 Android 中的数据库同步。

我使用以下 Android 代码:

package com.zelacroix.bukumenu;

import java.io.IOException;
import java.io.InputStream;

import org.apache.http.*;
import org.apache.http.client.*;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.params.*;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class Sinc extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sinc);
        Toast.makeText(getApplicationContext(), getKategori(), 5).show();
    }

    public String getKategori(){
        HttpParams httpParameters = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParameters, 60000);
        HttpConnectionParams.setSoTimeout(httpParameters, 60000);
        HttpClient client=new DefaultHttpClient(httpParameters);
        HttpPost httpPost = new HttpPost("http://192.168.1.2:1924/TugasAkhir/Service.asmx/getKategori");
        HttpResponse response;
        String result="";
        try
        {
            response=client.execute(httpPost);
            HttpEntity entity= response.getEntity();
            DataHandler dataHandler = new DataHandler();
            if (entity!=null)
            {
                InputStream instream = entity.getContent();
                result = dataHandler.convertStreamToString(instream);
                instream.close();
            }
        } catch (ConnectTimeoutException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), e.toString(), 100).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), e.toString(), 100).show();
        }
        return result;
    }


}

我收到一个错误: org.apache.http.conn.httphostconnectexception connection to ``http://192.168.1.2:1924..... refused

供您参考.. 当我使用模拟器并将 IP 地址更改为 10.0.2.2 时,此代码运行成功。

当我访问托管的在线 Web 服务时,此代码也会成功运行。只有当我以本地方式运行 Web 服务并尝试使用笔记本电脑的 IP (192.168.1.2) 使用 Android 设备访问它时,它才会失败。

我正在使用WIFI。

我该如何解决这个错误?

4

4 回答 4

2

尝试添加:

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}

这有帮助吗?

于 2012-07-23T14:18:54.417 回答
0

检查您的笔记本电脑 IP 和设备 IP。

它应该在同一个子网掩码中

笔记本电脑和移动(安卓)设备的 ip 必须是192.168.XX

于 2012-07-23T14:27:48.657 回答
0

终于解决了..问题是Visual Studio 2010在设置IIS时太复杂了,然后我尝试在Visual Studio 2008上开发我的Web服务并且IIS工作正常!Android可以访问Web服务而不会拒绝连接。

于 2012-07-26T01:17:03.273 回答
0

遇到了这个问题,但解决方案是一些熟悉的东西。

让你的<uses-permission android:name="android.permission.INTERNET"/>在你的清单上。

于 2014-02-18T02:05:12.623 回答