使用Android消费WCF服务

时间:2011-11-01 05:32:13

标签: java android wcf

我在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();
        }
    } 
}

有人可以查看代码并让我知道我是否接近,或者更好地指出我,或者发布一些有效的代码???

2 个答案:

答案 0 :(得分:3)

全部修复,Java代码工作正常,问题是我的WCF服务需要工作。它没有传回正确格式化的JSON对象。所以我回去了,发现一个简单而又重要的精彩教程。在找到这个教程之前,我必须完成10个教程。为作者拍拍背面。

http://www.codeproject.com/KB/WCF/RestServiceAPI.aspx

干杯,

麦克

答案 1 :(得分:0)

我认为您应该使用另一个线程来执行网络任务,并且您还可以使用runOnUiThread()方法进行UI更新,例如显示您的Toast等。