2011-07-05 4 views
2

저는 TCP 소켓을 통해 JSON 메시지를 보내고받을 수있는 간단한 C# 응용 프로그램 (.Net 4.0 + WPF)을 만들었습니다.C# app : JSON 인터페이스를 구현할 수 있습니까?

다음 단계로, 웹 사이트 및 PHP 스크립트의 JavaScript 응용 프로그램이 내 응용 프로그램과 JSON 메시지를 보내고받을 수 있어야합니다. 그게 가능하니?

JS/PHP는 Stateless HTTP 연결을 사용하기 때문에 JS/PHP 앱이 JSON 메시지를 내 앱으로 보내고 JSON을 사용하여 내 앱 응답 (HTTP 응답)을 보내는 경우 어떻게해야합니까? 메시지? 그게 가능한가? 내 앱에서 JSON 메시지를 보내려면 GET 또는 POST 메서드를 사용해야합니까?

내 질문에 너무 많은 혼란이 생기지 않기를 바란다. 그러나 나는 팁, 설명 또는 의견을 보내 주시면 감사하겠습니다.

마이크

당신은 웹 방식에 특별한 JSON 지시어를 사용하여 .NET 웹 서비스를 통해이 작업을 수행 할 수
+0

내 WPF (뚱뚱한 클라이언트) 앱이 JSON 메시지의 호스트 역할을하는 이유는 무엇입니까? 그것은 매우 강력한 서버 솔루션처럼 들리지 않습니다. –

+0

@Kirk Woll 피어 투 피어 앱이므로 중앙 호스트/서버가 없습니다. – Mike

+0

아, 모든 사용자가 방화벽에서 구멍을 뚫을 것으로 기대하십니까? –

답변

3

, 예를 들어,

[ScriptMethod(UseHttpGet = true, ResponseFormat=ResponseFormat.Json)] 
public string DoSomething(string param1, int param2) 
{ 
    // Do Something 
} 

ResponseFormat.Json 속성이 지정

는 리턴 된 데이터는 적절한 JSON 포맷으로 직렬화된다. 또한 진정한 JSON 응답을 받으려면 요청하는 애플리케이션에서 콘텐츠 유형을 "application/json"으로 설정해야합니다. 그렇지 않으면 메서드는 XML로 응답을 래핑하려고 시도합니다.

또한이 메소드에서 HttpGet을 활성화하여 쿼리 문자열을 통해 메소드에 게시 할 수 있습니다.

http://www.example.com/service.asmx?param1='Hello'&param2=1; 
+0

와우, 빠른 답변 주셔서 감사합니다! 당신의 예제와 관련하여 두 가지 질문이 있습니다. 1. 내 앱이 "일반"WPF 앱이므로 IP/포트 만있는 경우 문제가됩니다 (예 : http : //156.25.365.25:4500/). service.asmx? param1 = 'Hello'& param2 = 1; [/ code]? – Mike

+1

@Mike, 문제가 발생하지 않습니다. (비록 사용자의 방화벽에 대한 책임이 있다고 가정합니다.) –

+0

두 번째 질문 : "UseHttpGet = true"를 사용하고 있기 때문에 JS/PHP 앱은 JSON 메시지를 GET 메서드를 사용하여 항상 내 앱에 보내야합니다. ? – Mike

관련 문제