저는 RESTFull WCF Services에 매우 익숙하며, Android 앱에서 호출하는 것이 더 새롭습니다.jsonarray 텍스트는 {my returns value}의 문자 1에서 '['로 시작해야합니다.
[ServiceContract]
public interface IPeople
{
[OperationContract]
void DoWork();
[WebGet(UriTemplate = "/GetPeople",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
[OperationContract]
string GetPeople();
}
인터페이스의 구현 : 여기 내 WCF 서비스의
공공 문자열 GetPeople() { PeoplesEntities QE = 새로운 PeoplesEntities을();
시도 {
HttpGet request = new HttpGet(SERVICE_URI + "/GetPeople");
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
HttpEntity responseEntity = response.getEntity();
// Read response data into buffer
char[] buffer = new char[(int)responseEntity.getContentLength()];
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);
reader.read(buffer);
stream.close();
JSONArray plates = new JSONArray(new String(buffer));
return new String(buffer);
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}
}
내가 얻을 예외는 주제에서 언급 무엇을 :
var result = from q in qe.tPeople
select q;
int count = result.Count();
int index = new Random().Next(count);
tPeople people = result.OrderBy(a=>a.ID).Skip(index).FirstOrDefault();
// result.First().ToString();
return people.FirstName + " - " + people.LastName;
}
는이 내가 안드로이드 서비스를 통해 소비하고있어 방법이다. 이상한 점은 예외에서 반환 될 것으로 예상되는 값입니다. 나는 그것이 왜 대괄호를 기대하고 있는지 전혀 모른다.
참고로, 대부분의 코드는 온라인 예제에서 직접 가져 왔습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사.
JSON 및 http 인증으로 인해 안드로이드에서 두통이 생겼습니다. 그러나 보존하고 당신은 그것을 통해 얻을 것이다. JSOn 구조체에 대해 잘 모르겠다면 JSON 구조체를 작성하는 방법을 배우고 C# 코드가 무엇인지 알 수 있도록 조언하십시오. – JonWillis