2012-02-06 5 views
3

현재 Android 용 Mono를 사용하여 모바일 응용 프로그램을 개발 중입니다. 웹 참조를 추가하여 WCF 웹 서비스를 사용하려고했지만 그 방법으로 전화를 걸 수없는 것 같습니다. 지금은 총알을 물고 Java를 사용하여 코드를 다시 작성하려고합니다. Java를 사용하여 코드를 C#으로 잘 작성하지 않았습니다. 나는 안드로이드를위한 모노를 사용하여 WCF의 웹 서비스를 소비하려면 어떻게Android 또는 Java 및 WCF 용 모노

  1. :

    나는이 개 질문이 있습니다.
  2. 내가 어떻게 아래와 같이 보이는 메소드를 호출 할 자바를 사용하는 나는 경우

    [OperationContract] 
    [WebInvoke(Method = "POST", UriTemplate = "/MyMethod", 
          RequestFormat = WebMessageFormat.Json, 
          ResponseFormat = WebMessageFormat.Json)] 
    void MyMethod(CustomObjectFromDataContract c_Object); 
    

내가 전화를 할 때 내가 처리되지 않은 예외 System.Net를라는 메시지 박스를 얻을. WebException :. 코드로 들어가면 호출 할 때 오류가 발생하는 것을 볼 수 있습니다.

[System.Web.Services.Protocols.SoapDocumentMethodAttribute ("http://tempuri.org/IMyService/MyMethod", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] 
    public void MyMethod([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] CustomObjectFromDataContract c_Object) { 
    this.Invoke("MyMethod", new object[] { 
        c_Object}); 
    } 

invoke는 예외를 발생시키는 것입니다.

+1

"나는 그런 식으로 전화를 걸 수없는 것 같습니다."-이 부분에 대해 자세히 설명해 주시겠습니까? – millimoose

+0

예외 메시지와 스택 추적을 포함시켜주세요. 그러면 Google에서 도움이 될 것입니다 ... –

답변

2

문제가 해결되었습니다. 이 작업을 수행하는 단계는 다음과 같습니다. 1. 서비스는 RESTful 서비스이어야합니다. 2. Localhost (생성 된 코드에 있음)를 참조하는 대신 호스팅 시스템의 IP 주소를 사용하십시오. 내 안드로이드 컴퓨터가 사용하고있는 로컬 호스트와는 다른 로컬 호스트가 있다고 의심되는 Dalvik VM에서 안드로이드가 실행되기 때문에 이것이라고 생각합니다. 나는 그것을했고 나의 봉사는 지금 일한다.

0

웹 참조를 추가하는 경우 클라이언트를 포함한 일부 참조 클래스를 생성해야합니다. 그런 다음 생성 된 클라이언트의 인스턴스를 만들고 클라이언트에서 MyMethod을 호출 할 수 있습니다.

Visual Studio를 사용하는 경우 MonoDroid 프로젝트> 웹 참조 추가를 마우스 오른쪽 버튼으로 클릭하고 WCF 서비스의 URL을 입력한다고 가정합니다.

은 당신이 할 수있는 호출하려면 다음 내가 네임 스페이스 Example.WebReference과 서비스에 대한 참조를 추가 한

나는 다음 방법으로 부를 것이다 :

Example.WebReference.ServiceElement client = new Example.WebReference.ServiceElement(); 
var output = client.MyMethod(parameter); 

희망이 도움이됩니다.

관련 문제