使用 WCF Rest 服务通信 Android 应用程序
Posted
技术标签:
【中文标题】使用 WCF Rest 服务通信 Android 应用程序【英文标题】:Comunication Android App with WCF Rest Service 【发布时间】:2014-01-21 12:50:31 【问题描述】:我正在尝试将我的 android 应用程序与 WCF REST 服务通信,但是当我运行 android 应用程序时,总是会出现一条消息,说不幸的是,android 应用程序已停止。
下面是我对服务的调用,当单击执行事件 LogarOnserver 时,我的应用程序只有一个具有 Button 的 Activity,如下所示。服务返回响应后,我将其放入 TextView (_myPassWord)。
package com.arduino.ligthautomation;
import java.io.IOException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class RegisterActivity extends Activity
EditText _myPassWord ;
EditText _myLogin;
private static final String URL_STRING = "http://192.168.0.3:8080/lightautomationservice/1";
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
//mostrando tela de login
setContentView(R.layout.login);
_myPassWord = (EditText) findViewById(R.id.editTextPassword);
_myLogin = (EditText) findViewById(R.id.editTextUsuario);
public void logarOnServer (View v) throws IOException
try
HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet("http://192.168.0.3:8080/lightautomationservice/1");
ResponseHandler<String> handler = new BasicResponseHandler();
//you result will be String :
String result = httpclient.execute(request, handler);
_myLogin.setText(result);
catch (ClientProtocolException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
【问题讨论】:
这个错误是从哪里来的?发布整个堆栈跟踪。 【参考方案1】:只是一个疯狂的猜测:您正在主(UI)线程上执行网络请求。一个很大的不。
查找AsyncTask
【讨论】:
以上是关于使用 WCF Rest 服务通信 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net Web API 与 WCF - Web API 能否用于向单例 WCF 服务提供基于 REST 的通信?