2014-01-10 2 views
0

URL이 xml 데이터 인 http://msi-ecs.com.ph:8090/uom/UOMws.svc/xml/codes 을 포함하는 wcf 서비스가 있습니다. 불행히도 Windows Mobile에 필요하며 mime 형식으로 파일을 처리하는 방법 만 알고 있습니다. 이 MIME 유형은 주로 파일의 확장자를 사용하여 참조 해제됩니다. 파일 "codes"에는 확장자가 없기 때문에 IE 모바일 브라우저는 파일을 어떻게 처리해야할지 모르고 오류 메시지를 표시합니다.WCF 서비스에 .xml 확장자 추가

나는 광범위하고 수사적으로 행운을 찾았지만 내 편이 아닌 것 같습니다.

다음은 질문입니다. wcf 서비스의 URL에 .xml 확장자를 어떻게 추가 할 수 있습니까?

답변

3

이 - http://msi-ecs.com.ph:8090/uom/UOMws.svc/xml/codes이 아니며은 XML 파일입니다. 브라우저에 표시되는 것은 사용중인 주소에서 RESTful 서비스의 응답입니다. 서비스가 XML로 데이터를 반환합니다.

당신은 (당신에게 일반적인 아이디어를 제공하는 것은 매우 사소한 예)이 같은 응답의 내용을 받고 다음 서비스를 호출 할 HttpClient를 사용하여 아주 쉽게 검색 할 수 있습니다

:

HttpClient client = new HttpClient(); 

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

HttpResponseMessage response = client.GetAsync("http://msi-ecs.com.ph:8090/uom/UOMws.svc/xml/codes").Result; 
string xml = response.Content.ReadAsStringAsync().Result; 

이 코드 반환 (당신이 다음 구문 분석을위한하여 XDocument에로드 할 수 있습니다) 문자열로 다음과 같은 :

<ArrayOfCodes xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <Codes> 
    <active>1</active> 
    <id>14</id> 
    <quantity>50</quantity> 
    <unit>pc</unit> 
    <unitid>1</unitid> 
    <uom>Piece</uom> 
    <value>CPQ247050-001~000</value> 
    </Codes> 
    <Codes> 
    <active>0</active> 
    <id>16</id> 
    <quantity>30</quantity> 
    <unit>bx</unit> 
    <unitid>2</unitid> 
    <uom>Box</uom> 
    <value>CPQ293703-B21~000</value> 
    </Codes> 
    <Codes> 
    <active>1</active> 
    <id>17</id> 
    <quantity>1</quantity> 
    <unit>bx</unit> 
    <unitid>2</unitid> 
    <uom>Box</uom> 
    <value>aaa</value> 
    </Codes> 
    <Codes> 
    <active>1</active> 
    <id>15</id> 
    <quantity>100</quantity> 
    <unit>pk</unit> 
    <unitid>3</unitid> 
    <uom>Pack</uom> 
    <value>CPQ247050-001~0M0</value> 
    </Codes> 
    <Codes> 
    <active>1</active> 
    <id>18</id> 
    <quantity>2</quantity> 
    <unit>hf</unit> 
    <unitid>5</unitid> 
    <uom>Handfull</uom> 
    <value>aaa</value> 
    </Codes> 
</ArrayOfCodes> 

편집

(내 컴퓨터에서 모바일 SDK를 가지고 있지 않는 한, 내가 .NET 4.5 VS 2012이 실행 참고하지만, 일) Windows Mobile 용

는 다음 코드를 시도 :

string xml = ""; 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://msi-ecs.com.ph:8090/uom/UOMws.svc/xml/codes"); 

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
{ 
    using (Stream responseStream = response.GetResponseStream()) 
    { 
     using (StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.UTF8)) 
     { 
      xml = reader.ReadToEnd(); 
     } 
    } 
} 

위 코드는 answer을 기준으로합니다.

** 편집 : VB.NET **

Dim xml As String = "" 

Dim request As HttpWebRequest = WebRequest.Create("http://msi-ecs.com.ph:8090/uom/UOMws.svc/xml/codes") 

Using response As HttpWebResponse = request.GetResponse() 
    Using (responseStream As Stream = response.GetResponseStream() 
     Using reader As StreamReader = New StreamReader(responseStream, System.Text.Encoding.UTF8)) 
      xml = reader.ReadToEnd(); 
     End Using 
    End Using 
End Using 
+0

내가 그 윈도우 모바일에 적용 할 수 있다고 생각하지 않습니다. –

+0

해당 태그를 놓쳤습니다. 또 다른 예가 몇 분 안에 나옵니다. – Tim

+0

유망한 것 같지만 아직 확인할 수 없다. 사용하는 모든 3 개의 코드와 함께 '(dim a b = c)'를 사용하는 데 문제가있다. 하하. –

관련 문제