无法连接到localhost / 127.0.0.1 android

时间:2015-07-25 07:00:46

标签: android retrofit androidhttpclient

我是Android开发的新手,并试图通过改造库调用android中的本地.NET web api服务。在IIS上启动我的web api后,我收到此错误无法连接到localhost / 127.0.0.1 android。

当我做了与建议http://themakeinfo.com/2015/04/retrofit-android-tutorial/相同的事情时,它工作正常,但我的localhost服务没有从android调用

我的服务网址是, http://localhost:52511/api/Values/getAllStudents/5

它也在浏览器中以XML格式输出。

我也尝试用它来调用,

public interface gitapi {
    @GET("/api/Values/GetProduct/{id}")      //here is the other url part.best way is to start using /
    public void getFeed(@Path("id") int id, Callback<gitmodel> response);
}

public class gitmodel {
    public int studentId;
    public String studentName;
    public String studentAddress;
}


String API = "http://10.0.2.2:52511";
public void CallService(View view){

        RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(API).build();
        gitapi git = restAdapter.create(gitapi.class);

        int id = 5;
        git.getFeed(id, new Callback<gitmodel>() {
            @Override
            public void success(gitmodel gitmodel, Response response) {
                Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_LONG).show();
            }

            @Override
            public void failure(RetrofitError error) {
                Toast.makeText(getApplicationContext(), "Errors", Toast.LENGTH_LONG).show();
            }
        });
}

但没有运气。

请告诉我在哪里需要更改以使其正常工作。 ?

我在浏览器中收到的响应是,

<ArrayOfstudents xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/APICall.Controllers">
<students>
<studentAddress>valsad</studentAddress>
<studentId>1</studentId>
<studentName>Keval</studentName>
</students>
<students>
<studentAddress>Hyderabad</studentAddress>
<studentId>2</studentId>
<studentName>Honey</studentName>
</students>
</ArrayOfstudents>

5 个答案:

答案 0 :(得分:3)

在您的情况下,与改造库没有任何关系。

这是关于您的网络设置, 您的手机和IIS服务器必须是同一个LAN。

您可以按照以下方式进行操作。

  1. 在IIS服务器上启动AP;
  2. 将AP与手机连接。
  3. 有时您需要关闭IIS服务器上的安全防火墙。

答案 1 :(得分:1)

我遇到与您相同的问题( 无法连接到localhost / 127.0.0.1 )。 首先,我建议你阅读: android developer's guide(图片的主要部分↓) enter image description here

我拥有所有这些,意思是A,B和C.作为C(模拟器),我使用了Genymotion。 我通过更改网络配置解决了我的问题。

重要提示:我在baseURL中的地址是:&#34; localhost:8099 / &#34;

让我们看看: 您应该点击设置网络→选中使用HTTP代理→输入您的IP地址和端口(在我的情况下是8099)→关闭。查看有关图像的更多详细信息↓

enter image description here

enter image description here

答案 2 :(得分:0)

您可以在androidmanifest.xml

中进行尝试
android:usesCleartextTraffic="true"

答案 3 :(得分:0)

使用本地IP代替127.0.0.1:<PORT>

答案 4 :(得分:0)

实际上这有助于在同一 Android 设备 (Android 9) 上使用 2 个应用

android:usesCleartextTraffic="true"