gpt4 book ai didi

android - 无法使用 Eclipse 连接到 .net Web 服务 (.asmx)

转载 作者:行者123 更新时间:2023-11-30 04:23:24 26 4
gpt4 key购买 nike

一般来说,我是 Eclipse 和 Android 编程的新手,但我的任务是为我的公司创建一个应用程序,该应用程序将连接到我们的 SQL Server 以读取一些数据作为概念证明。我已经下载并安装了 Eclipse Eplison 和所需的 Java/Android SDK。我想从简单开始,所以我创建了一个带有按钮和 View 的应用程序,它构建并运行良好。然后,我在 .NET (vs2010) 中创建了一个简单的 WebService,并让它在我的本地主机上运行。导航到它可以找到(通过 IE)并且它按计划工作。这是网络服务的代码(称为 Service1.asmx):

    [WebMethod]
public string DisplayText(string TextToDisplay)
{
return TextToDisplay;
}

现在我试图让按钮调用网络服务并显示传入的任何文本。这是我在 Eclipse 中使用的代码:

package com.test.android;

import org.ksoap2.*;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.*;

import android.app.*;
import android.os.*;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class ServiceUI extends Activity {
/** Called when the activity is first created. */

private static final String SOAP_ACTION = "http://localhost/MyWebService/DisplayText";
private static final String MethodName = "DisplayText";
private static final String NameSpace = "http://tempuri.org/"; // "http://localhost/testservice/";
private static final String URL = "http://localhost/MyWebServices/Service1.asmx?wsdl";
TextView tv;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

tv=(TextView)findViewById(R.id.tvMessage);

Button btn = (Button)findViewById(R.id.btnPress);
btn.setOnClickListener(btnListener);
}

public void CallWebService()
{
try {
SoapObject request = new SoapObject(NameSpace, MethodName);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet=true;
request.addProperty("TextToDisplay", "This is coming from android");
envelope.setOutputSoapObject(request);

androidHttpTransport.call(SOAP_ACTION, envelope);

SoapObject result = (SoapObject)envelope.getResponse();
tv.setText( ""+result);
}
catch (Exception e) {
tv.setText(e.getMessage());
}
}

private OnClickListener btnListener = new OnClickListener()
{
public void onClick(View v)
{
CallWebService();
}
};
}

当我在我的 AVD 中运行它时,出现以下错误:localhost/127.0.0.1:80 - 连接被拒绝

有什么想法吗?我在这里查看了很多很多关于 asmx 和 eclipse 的链接,但我找不到一个引用我的“连接被拒绝”错误的链接。

非常感谢任何帮助!

最佳答案

尝试使用 10.0.2.2 的 IP 地址代替您的 URI 的本地主机。

查看: this url

向下滚动一半并查找“网络地址空间”

关于android - 无法使用 Eclipse 连接到 .net Web 服务 (.asmx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com