2012-11-29 3 views
0

웹 서비스에 연결하고 API를 쿼리하여 성공적인 결과를 얻으려면 아래 코드를 사용합니다. 하지만 두 가지 문제가 있습니다.편안한 웹 서비스에서 응답 받기

  1. XML 형식의 응답을 캡처 할 수 없습니다.

  2. 페이지에서 돌아 오는 URL로 리디렉션 할 수 없습니다.

= ""TIA

문자열 URL을 제발 도와주세요;

string Method = ""; 

    string Group = ""; 

    string FormName = ""; 

    string return_url = ""; 

    Url = "https://abc.com/ws/"; 
    Method = "getRates"; 
    Group = "rates"; 
    FormName = "form1"; 
    return_url = "~/app/Public/PaymentTest.aspx?DR={DR}"; 

    NameValueCollection FormFields = new NameValueCollection(); 
    FormFields.Add("username", "xxx"); 
    FormFields.Add("password", "xxxx"); 
    FormFields.Add("pin", "xxxx"); 
    FormFields.Add("dest_country", "Kenya"); 
    FormFields.Add("return_url", return_url); 

    Response.Write("<html><head>"); 
    Response.Write(string.Format("</head><body onload=\"document.{0}.submit()\">", FormName)); 
    Response.Write(string.Format("<form name=\"{0}\" method=\"{1}\" action=\"{2}\" >", FormName, "post", Url + Group + "/" + Method)); 

    for (int i = 0; i < FormFields.Keys.Count; i++) 
    { 
     Response.Write(string.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", FormFields.Keys[i], FormFields[FormFields.Keys[i]])); 
    } 
    Response.Write("</form>"); 
    Response.Write("</body></html>"); 
    Response.End(); 

답변

0

로드 데이터 집합에 반환 XML (참고 : returnds), 그리고 나는이 같은 XML을 respones를 검색 :

int i = 0; 
string current = null; 
for (i = 0; i <= returnds.Tables(0).Rows.Count - 1; i++) { 
    if (Information.IsDBNull(returnds.Tables(0).Rows(i)("ValueOfXML")) == true) { 
    current = "";} 
else { 
    current = Convert.ToString(returnds.Tables(0).Rows(i)("ValueOfXML")); 
    } 
} 
0

당신은 유일한 해결책하는 HTML을 만들려고 한 것으로 나타났습니다. (ASP.NET을 사용하여 HTML을 생성하는 것은 혼란 스럽습니다.) onload에 자바 스크립트를 추가로 작성해야합니다. 폼을 제출하고 싶지는 않을 것입니다. 그러면 브라우저에 페이지가 완료되었음을 알려줍니다. 자바 스크립트 웹 서비스 호출을 원할 것입니다. jquery 방법은 원시 XmlHttp보다 쉽습니다.

Ref : How to call a web service from jQuery

관련 문제