Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Android中使用WCF服务时出错_C#_Java_Android_.net_Wcf - Fatal编程技术网

C# 在Android中使用WCF服务时出错

C# 在Android中使用WCF服务时出错,c#,java,android,.net,wcf,C#,Java,Android,.net,Wcf,我试图使用WCF服务将数据发布到我的数据库,但似乎无法找出我的代码有什么问题,我尝试了不同的解决方案,但似乎都失败了。我是android开发新手,不知道如何调试。请帮帮我。。。 这是我的代码: [ServiceContract] public interface IAllocationService { [OperationContract] [WebInvoke( Method = "POST", UriTemplate = "Strongest

我试图使用WCF服务将数据发布到我的数据库,但似乎无法找出我的代码有什么问题,我尝试了不同的解决方案,但似乎都失败了。我是android开发新手,不知道如何调试。请帮帮我。。。
这是我的代码:

[ServiceContract]
public interface IAllocationService
{
    [OperationContract]
    [WebInvoke(
        Method = "POST",
        UriTemplate = "StrongestWifi",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json)]
    void UpdateStrongestWifi(myWifiClass myWifiClass);

}

[DataContract]
public class myWifiClass
{
    [DataMember(Name = "Time")]
    public string Time
    {
        get;
        set;
    }
    [DataMember(Name = "SignalStrength")]
    public string SignalStrength
    {
        get;
        set;
    }
    [DataMember(Name = "SSID")]
    public string SSID
    {
        get;
        set;
    }
WCF服务:

[ServiceContract]
public interface IAllocationService
{
    [OperationContract]
    [WebInvoke(
        Method = "POST",
        UriTemplate = "StrongestWifi",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json)]
    void UpdateStrongestWifi(myWifiClass myWifiClass);

}

[DataContract]
public class myWifiClass
{
    [DataMember(Name = "Time")]
    public string Time
    {
        get;
        set;
    }
    [DataMember(Name = "SignalStrength")]
    public string SignalStrength
    {
        get;
        set;
    }
    [DataMember(Name = "SSID")]
    public string SSID
    {
        get;
        set;
    }
Android代码:

public void onGetWebService(View v)
{
    HttpPost request = new HttpPost(SERVICE_URI + "/StrongestWifi");
    request.setHeader("Accept", "application/json");            
    request.setHeader("Content-type", "application/json");
    JSONStringer getWifiInfo;
    try {
        getWifiInfo = new JSONStringer()
            .object()
                .key("myWifiClass")
                    .object()
                        .key("Time").value("TIME")                                  
                        .key("SignalStrength").value("Strength")
                        .key("SSID").value("ID")
                    .endObject()
                .endObject();

    StringEntity entity = new StringEntity(getWifiInfo.toString());

    request.setEntity(entity);

    // Send request to WCF service
    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpResponse response = httpClient.execute(request);
    Log.d("WebInvoke", "Saving : " + response.getStatusLine().getStatusCode());
    }
    catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
日志目录:

[ServiceContract]
public interface IAllocationService
{
    [OperationContract]
    [WebInvoke(
        Method = "POST",
        UriTemplate = "StrongestWifi",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json)]
    void UpdateStrongestWifi(myWifiClass myWifiClass);

}

[DataContract]
public class myWifiClass
{
    [DataMember(Name = "Time")]
    public string Time
    {
        get;
        set;
    }
    [DataMember(Name = "SignalStrength")]
    public string SignalStrength
    {
        get;
        set;
    }
    [DataMember(Name = "SSID")]
    public string SSID
    {
        get;
        set;
    }
06-01 15:46:06.229:W/System.err(27711):android.os.NetworkOnMainThreadException 06-01 15:46:06.237:W/System.err(27711):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117) 06-01 15:46:06.237:W/System.err(27711):位于libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) 06-01 15:46:06.237:W/System.err(27711):位于libcore.io.IoBridge.connectErrno(IoBridge.java:127) 06-01 15:46:06.237:W/System.err(27711):位于libcore.io.IoBridge.connect(IoBridge.java:112) 06-01 15:46:06.245:W/System.err(27711):位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 06-01 15:46:06.245:W/System.err(27711):位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 06-01 15:46:06.245:W/System.err(27711):位于java.net.Socket.connect(Socket.java:842) 06-01 15:46:06.245:W/System.err(27711):位于org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 06-01 15:46:06.245:W/System.err(27711):位于org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 06-01 15:46:06.253:W/System.err(27711):位于org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 06-01 15:46:06.253:W/System.err(27711):位于org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 06-01 15:46:06.253:W/System.err(27711):位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 06-01 15:46:06.253:W/System.err(27711):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 06-01 15:46:06.253:W/System.err(27711):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 06-01 15:46:06.253:W/System.err(27711):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 06-01 15:46:06.253:W/System.err(27711):位于com.example.pcsprojectnetworkcodes.MainActivity.onGetWebService(MainActivity.java:191) 06-01 15:46:06.253:W/System.err(27711):位于java.lang.reflect.Method.invokenactive(本机方法) 06-01 15:46:06.261:W/System.err(27711):位于java.lang.reflect.Method.invoke(Method.java:511) 06-01 15:46:06.261:W/System.err(27711):在android.view.view$1.onClick(view.java:3594) 06-01 15:46:06.261:W/System.err(27711):在android.view.view.performClick(view.java:4204) 06-01 15:46:06.261:W/System.err(27711):在android.view.view$PerformClick.run(view.java:17360) 06-01 15:46:06.261:W/System.err(27711):位于android.os.Handler.handleCallback(Handler.java:725) 06-01 15:46:06.261:W/System.err(27711):位于android.os.Handler.dispatchMessage(Handler.java:92) 06-01 15:46:06.269:W/System.err(27711):位于android.os.Looper.loop(Looper.java:137) 06-01 15:46:06.269:W/System.err(27711):位于android.app.ActivityThread.main(ActivityThread.java:5237) 06-01 15:46:06.276:W/System.err(27711):位于java.lang.reflect.Method.invokenactive(本机方法) 06-01 15:46:06.276:W/System.err(27711):位于java.lang.reflect.Method.invoke(Method.java:511) 06-01 15:46:06.276:W/System.err(27711):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799) 06-01 15:46:06.276:W/System.err(27711):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) 06-01 15:46:06.284:W/System.err(27711):在dalvik.System.NativeStart.main(本机方法)


不要在主线程上进行网络调用,因为它可能会使应用程序崩溃。尝试调用此httpClient。在asyntask中执行(请求)或使用可运行线程。

我尝试使用asyntask,但不太了解如何以及在何处使用它,您能给我一个headstart吗?谢谢只需使用Asynctask.call Asynctask.execute的doInbackground()mtd执行onGetWebService()功能即可。错误消失,但我面临另一个问题,谢谢!!