2011-02-17 11 views
3

나는 현재 Trafikanten API를 기반으로 대중 교통 시스템을위한 웹 사이트를 개발하고 있어요 (http://reis.trafikanten.no/topp2009/topp2009ws.asmx)소비 웹 서비스를 직접

사이트는 웹 서비스 비록 몇 가지 기능을 가지고있다. 이것은 SOAP 형식의 .NET 프레임 워크에서 구현됩니다. 그러나 웹 페이지에 정보를 표시하려면 JavaScript와 같은 클라이언트 측 언어에서 기능을 사용해야합니다. 아무도이 시나리오에 대처할 수있는 쉬운 방법을 제안 할 수 있습니까?

답변

2

당신이 LAMP 스택 사용하고 제공 : JSON을 SOAP 웹 서비스를 소비하고 반환 나는 nusoap (http://sourceforge.net/projects/nusoap/) libarary를 사용하여 PHP 스크립트를 작성합니다

을 AJAX 호출을 통해 자바 스크립트에 연결하십시오.

편집

은 .NET에서 더욱 쉽게합니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 웹 서비스 추가를 선택하십시오. 그런 다음 다른 객체처럼 웹 서비스의 메소드에 액세스 할 수 있습니다. JS에서 사용하는 한, 결과를 JSON 형식으로 출력하는 ASP 페이지를 구현 한 다음 LAMP 스택과 마찬가지로 jQuery를 사용하여이를 소비 할 수 있습니다. ASP의 포스트 백 (post back) 기능을 사용하면 JS에서의 과도한 작업을 수행하고 뷰 뒤의 코드 파일에서 웹 서비스를 직접 사용할 수 있습니다.

희망이 있습니다.

+0

Jesse, Thanx는 조언을 구했지만 웹 사이트가 ASP를 기반으로하는 PHP를 기반으로하지 않기 때문에 해당 라이브러리를 사용할 수 없습니다. 다른 대안들 ...? 고맙습니다 미리 -neo – Neo182

+0

@ Neo182 - 내 편집을 참조하십시오. –

+0

@ Neo182, 죄송합니다. 저는 Dave의 답변을 완전히 놓쳤습니다. –

0

저는 Jesse가 말했듯이 과거에는 .NET과 함께했습니다. 나는 다른 서비스를 호출하는 "구성된 서비스"또는 어댑터 서비스를 구축합니다. 작성된 서비스는 SOAP를 .NET 서비스와 통신하고 응용 프로그램은 작성한 서비스와 JSON을 통신합니다.

1

서비스가 ASMX 서비스가 아닌 JSONP를 지원하지 않는 경우 로컬 웹 서버에서 실행하려면 서비스 프록시를 만들어야합니다. 그런 다음 해당 로컬 서비스를 사용하여 브라우저의 도메인 간 제한을 우회하는 중개자의 역할을 수행하십시오. 당신은을 통해 부를 수있는, 그런

[WebMethod] 
public Line[] GetLines(int ID) { 
    var client = new Topp2009WS.Topp2009WSSoapClient(); 

    client.open(); 

    return client.GetLines(ID); 
} 

: 당신이 당신의 ASP.NET 프로젝트에 Top2009WS에 서비스 참조를 추가 한 경우

,이 같은 예를 들어 GetLines위한 ​​서버 측 프록시()의 역할을 할 수 클라이언트 측의 다음과 같은 프록시 :

$.ajax({ 
    url: 'Service.asmx/GetLines', 
    type: 'POST', 
    dataType: 'json', 
    contentType: 'application/json', 
    data: '{"ID":' + 12345 + '}', 
    success: function(response) { 
    // Alerts the first result's "LineName" 
    alert(response.d[0].LineName); 
    } 
}); 

using jQuery to call the web service에 대한 자세한 내용은이 게시물을 참조하십시오.

+0

아주 좋은 조언 주셔서 감사합니다하지만 dataType에 대한 작은 의견이 있습니다. 데이터 유형이 JSON 형식으로되어 있습니까? 다른 데이터 유형을 지정할 수 없습니까? – Neo182

+0

브라우저와 로컬 웹 서버간에 JSON을 사용하는 것이 가장 좋습니다. 웹 서버와 원격 웹 서비스간에 여전히 XML을 사용하려고합니다. –

관련 문제