웹 서비스를 사용하여 사진을 쿼리 할 수있는 서버가 있습니다. 서버를 유지 관리하는 사람은 Java 개발자이지만 SDK를 사용하여 현재 실행중인 응용 프로그램과 통합 할 때 dotNET을 사용하여 서버를 쿼리 할 수 있어야하며 dotNET을 지원할 수 없거나 지원할 수 없습니다.여러 부분으로 구성된 HttpWebResponse
이 사진에 대한 내 요청 (필요한 인증서를 참고)입니다 : -
private WebResponse Request()
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(Validate);
X509Certificate certificate = X509Certificate.CreateFromCertFile("wmbuat.crt");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(server.Text);
request.Headers.Add("SOAP:Action");
request.ContentType = "text/xml";
request.Accept = "text/xml";
request.Method = "POST";
request.ClientCertificates.Add(certificate);
GetXml().Save(request.GetRequestStream());
return request.GetResponse();
}
private static Boolean Validate(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
내가 서버에게 어떤 드라마를 조회 할 수 있지만, HttpWebResponse 클래스가 하나 개의 스트림의 두 부분으로 포함 -는 XML 부분을 포함하는 정보를 사진 및 JPEG의 이진 부분에 대한 정보를 제공합니다. 예를 들어 : -
--WMBMIME2Boundaryurn_uuid_C123
Content-Type: text/xml; charset=utf-8
Content-Transfer-Encoding: binary
Content-ID: <0.urn:uuid:[email protected]>
<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/">...</NS1:Envelope>
--WMBMIME2Boundaryurn_uuid_C123
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <987>
yoya..JFIF...
나는 여기에 관련된에 대한 몇 가지 질문을 본 적이 있지만 나는이 라이브러리와 인증서를 사용할 수 있도록하지 않는 것. 출력 스트림을 래핑하여 부품을 별도의 객체로 가져 오는 간단한 방법이 있습니까? String과 byte [] 만 있으면 좋겠고 XML과 Image로 직접 변환 할 수 있습니다.
나는에서는 StreamReader를 사용하여 이진 데이터는 다음 파일에 원래 스트림에서 나머지를 읽기 시작하는 곳이다 번째 빈 줄, 최대 읽기 시도했지만 문제가 해결되지 않은 : -/
어떤 도움이라도 대단히 감사하겠습니다.
감사합니다.
안녕하세요, 고마워요. 네가 말했듯이 dotNET 4.0에 접근 할 수있다. 기술적으로 대부분의 PC가 우리 회사의 3.5에서 실행되지만 필요에 따라 4.0으로 업그레이드 할 수있다. 우리는 여전히 XP를 사용하고 있기 때문에 4.5를 설치할 수 없습니다. – SignalOne
yikes, ok 행운을 빌어 HTTP mime 부분을 파싱하는 좋은 방법을 찾은 후, 거기에 튜토리얼이있을 것이라고 확신하지만 거기에는 많은 ich가 있습니다. – welegan