我是Magento SOAP api的新手,我只是通过在我的Android应用程序中提供正确的用户名和API密钥来获取会话ID。但是我在下一行中得到了错误。
androidHttpTransport.call("", env);
我已经为我的Android代码提供了Internet权限,这是我正在尝试的代码。我正在使用KSoap2 android外部JAR文件,我已将其添加到我的构建路径中。
请帮帮我
public class MainActivity extends Activity {
private static final String NAMESPACE = "urn:Magento";
private static final String URL = "http://127.0.0.1/index.php/api/v2_soap/";
@Override
protected void onCreate(Bundle savedInstanceState) {
try {
SoapSerializationEnvelope env = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
SoapObject request = new SoapObject(NAMESPACE, "login");
request.addProperty("username", "cats");
request.addProperty("apiKey", "sudhir123");
env.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call("", env);
Object result = env.getResponse();
Log.d("sessionId", result.toString());
} catch (Exception e) {
e.printStackTrace();
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
这是我的logcat
09-03 00:49:08.455 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ android.os.NetworkOnMainThreadException
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:110)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at libcore.io.IoBridge.connectErrno(IoBridge.java:154)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at libcore.io.IoBridge.connect(IoBridge.java:122)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at java.net.Socket.connect(Socket.java:882)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.internal.Platform.connectSocket(Platform.java:174)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.Connection.connect(Connection.java:152)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
09-03 00:49:08.456 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:382)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:217)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:130)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.sendData(HttpTransportSE.java:292)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:184)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at sportee.sudhir.inchoosoap.MainActivity.onCreate(MainActivity.java:30)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.Activity.performCreate(Activity.java:5990)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:102)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.os.Looper.loop(Looper.java:135)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5254)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-03 00:49:08.457 13505-13505/sportee.sudhir.inchoosoap W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)