我在WCF服务中有以下代码,它返回一个字符串,我试图在Android应用程序中使用它。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace HelloService
{
public class HelloService : IHelloService
{
public string SayHello()
{
return "Bonjuor Android from WCF Service";
}
}
}
我有两个问题,
1,由于try catch块,我不知道我是否接近Java。如果我在代码中有他们的应用程序,但不会在吐司或文本视图中显示文本,如果我离开try catch块,Eclipse告诉我解决问题,添加一个try catch块... lol。< / p>
2,我不知道我在做什么。
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.contacts);
try
{
DefaultHttpClient httpClient = new DefaultHttpClient();
URI uri = new URI("http://www.themorningtonpeninsula.com/HelloService/HelloService.svc");
HttpGet httpget = new HttpGet(uri + "/SayHello");
httpget.setHeader("Accept", "application/json");
httpget.setHeader("Content-type", "application/json; charset=utf-8");
HttpResponse response = httpClient.execute(httpget);
HttpEntity responseEntity = response.getEntity();
long intCount = responseEntity.getContentLength();
char[] buffer = new char[(int)intCount];
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
try
{
reader.read(buffer);
String str = new String(buffer);
TextView thetext = new TextView(this);
thetext.setText(str);
setContentView(thetext);
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}
catch (IOException e)
{
e.printStackTrace();
}
stream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
有人可以查看代码并让我知道我是否接近,或者更好地指出我,或者发布一些有效的代码???
答案 0 :(得分:3)
全部修复,Java代码工作正常,问题是我的WCF服务需要工作。它没有传回正确格式化的JSON对象。所以我回去了,发现一个简单而又重要的精彩教程。在找到这个教程之前,我必须完成10个教程。为作者拍拍背面。
http://www.codeproject.com/KB/WCF/RestServiceAPI.aspx
干杯,
麦克
答案 1 :(得分:0)
我认为您应该使用另一个线程来执行网络任务,并且您还可以使用runOnUiThread()
方法进行UI更新,例如显示您的Toast等。