2012-11-28 2 views
2

ServiceStack으로 내 서버와 클라이언트 (MonoDroid 및 Windows)를 만들었으므로 모든 것이 잘 작동하지만 이제 Compact Framework F3을 사용하여 모바일 클라이언트로 서버의 데이터를 사용해야합니다. .5.서버 및 .NET Compact Framework 클라이언트의 ServiceStack

SOAP 웹 서비스로 액세스 할 수 있지만 REST를 통해 ServiceStack 클라이언트 (RestSharp가 Compact Framework와 호환되지 않음)와 같이 단순화하기 위해 프레임 워크를 사용하는 것이 좋습니다.

내가 HttpWebRequest를하고 직렬화와 응답을 얻을 수 있었다 :

는 당신이 날

var client = new JsonServiceClient("http://192.168.0.87:82"); 
HelloResponse response = client.Get(new Hello { Name = "World!" }); 

UPDATE로 쉬운 방법으로 ServiceStack 서버와 연결할 수 있습니다 CF3.5와 호환 뭔가 알고 계십니까 .NET Compact Framework를 지원하는 이전 JSON.Net 버전이 포함 된 HelloResponse 객체 내가 누락 된 유일한 사실은 가상의 HelloReq 객체를 직렬화하고 HintpWebRequest에 전달하는 방법입니다. (아래 경로를 수동으로 만들지 않고)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.0.87:82/Hello/test?format=json"); 
req.Method = "GET";   
HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
Stream respStream = resp.GetResponseStream(); 
string resps; 

using (var reader = new StreamReader(respStream, Encoding.UTF8)) 
{ 
     resps = reader.ReadToEnd(); 
} 
respStream.Close(); 

JsonTextReader jreader = new JsonTextReader(new StringReader(resps)); 

JsonSerializer serializer = new JsonSerializer(); 
HelloResponse p = serializer.Deserialize<HelloResponse>(jreader); 

고마워! 생성

답변

0

요청 :

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.0.87:82/json/syncreply/Hello"); 
      req.ContentType = "text/json"; 
      req.Method = "POST"; 
      req.ContentLength = json.Length; 

      using (var streamWriter = new StreamWriter(req.GetRequestStream())) 
      { 
       streamWriter.Write(json); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
      } 
관련 문제