我正在webservice
上工作,我对webservice没有任何想法。我看起来相同的示例网络服务(如实时SOAP服务)它工作正常。我要在localhost运行网络服务,我不知道我的网址、命名空间和方法名称是否被正确声明。
下面的代码是我的WSDL代码
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xs0="http://www.processmaker.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
targetNamespace="http://www.processmaker.com">
<types>
<xs:schema elementFormDefault="qualified"
targetNamespace="http://www.processmaker.com">
<xs:element name="login">
<xs:complexType>
<xs:sequence>
<xs:element name="userid" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</definitions>
调用上述服务的我的android代码:
public class MainActivity extends Activity {
String str = null;
private static final String SOAP_ACTION = "http://www.processmaker.com/Login";
private static final String METHOD_NAME = "Login";
private static final String NAMESPACE = "http://www.processmaker.com/";
private static final String URL = "http://192.168.1.5/sysworkflow/en/neoclassic/setup/main";
SoapObject request;
TextView tv;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView1);
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute();
}
private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String response = "";
try {
request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo weightProp = new PropertyInfo();
weightProp.setName("USER_ID");
weightProp.setValue("admin");
weightProp.setType(String.class);
request.addProperty(weightProp);
PropertyInfo fromProp = new PropertyInfo();
fromProp.setName("PASSWORD");
fromProp.setValue("admin");
fromProp.setType(String.class);
request.addProperty(fromProp);
/*
* PropertyInfo toProp =new PropertyInfo(); toProp.setName("ToUnit");
* toProp.setValue(toUnit); toProp.setType(String.class);
* request.addProperty(toProp);
*/
final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
final HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response1 = (SoapPrimitive) envelope.getResponse();
Log.i("myApp", response1.toString());
// tv.setText(response.toString());
Toast.makeText(getApplicationContext(), response.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
tv.setText(e.toString());
e.printStackTrace();
}
}
catch (Exception e) {
e.printStackTrace();
}
return response;
}
@Override
protected void onPostExecute(String result) {
tv.setText(result);
}
}
请找个人帮我做这件事。。
嗨,像这样使用。
private static final String SOAP_ACTION = "http://www.processmaker.com/Login";
private static final String METHOD_NAME = "Login";
private static final String NAMESPACE = "http://www.processmaker.com";
private static final String URL = "http://10.0.2.2/sysworkflow/en/classic/services/wsdl2";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("userid", "admin");
request.addProperty("password", "admin");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL);
try {
ht.call(SOAP_ACTION, envelope);
final SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
str = response.toString();
} catch (Exception e) {
e.printStackTrace();
}
Log.d("WebRespone", str);
希望这对你有帮助。
问题内容: 由于wamp服务器,我试图将我的android应用程序连接到本地主机url,但它不起作用。我的目标是获取json数据并解析这些数据。对于我的测试,我使用的是设备而不是模拟器,并且使用AndroidManifest.xml中的权限: 我的网址看起来像这样: 我试过了 : 但是到目前为止,它从未起作用: 然后我尝试了在互联网上找到的json url测试:http : //headers.j
我用这个命令安装了Postgres 在终端上使用我得到 然后我安装了 后来我打开了UI并用这些信息创建了服务器 但是这个错误出现了 我怎么才能修好它?
问题内容: 我最近在Windows 2003上安装了MySQL 5,并尝试配置实例。一切正常,直到我进入“应用安全设置”,这时才出现上述错误()。 我的防火墙中确实存在“ MySQL Server”的端口3306异常。 问题答案: 您可能必须向用户授予表上的“ localhost”特权。请参阅语法文档。这是一个示例(来自C语言)。 “在%s上授予所有特权。*由’%s’标识为’%s’@’本地主机’”
有两个相关的问题,但他们没有完全回答问题。但如果国防部认为这是复制品,请告诉我。 编辑:我在Linux上使用docker,并且非常希望不在主机模式下运行容器。
这是我在host.docker中使用的更新。内部代替本地主机,但我仍然得到一个错误
我试图连接我的Android应用程序到本地主机网址感谢wamp服务器,但它不工作。我在这里的目标是获取json数据并解析这些数据。对于我的测试,我使用的设备不是仿真器,我使用权限在Androidanifest.xml: 我的url如下所示: 我试过: 但迄今为止,它从未奏效: 然后我尝试了一个在互联网上找到的json url测试:http://headers.jsontest.com/ 它工作得非