이전에 WebClient를 사용한 적은 한번도 없었습니다. 서버의 응답을 확인하여 업로드가 성공했는지 또는 예외가없는 경우 파일을 업로드 된 상태로 둘 수 있는지 여부를 잘 모르겠습니다.WebClient.UploadFile의 응답을 확인하여 업로드가 성공했는지 확인해야합니까?
응답을 확인하려면 어떻게해야합니까? resposeHeaders 속성을 파싱 하시겠습니까?
미리 감사드립니다.
이전에 WebClient를 사용한 적은 한번도 없었습니다. 서버의 응답을 확인하여 업로드가 성공했는지 또는 예외가없는 경우 파일을 업로드 된 상태로 둘 수 있는지 여부를 잘 모르겠습니다.WebClient.UploadFile의 응답을 확인하여 업로드가 성공했는지 확인해야합니까?
응답을 확인하려면 어떻게해야합니까? resposeHeaders 속성을 파싱 하시겠습니까?
미리 감사드립니다.
UploadFile
메서드는 원격 서버에서 반환 한 응답이 포함 된 byte[]
을 반환합니다. 서버가 업로드 요청 (및 오류 조건 (아래 참고 사항 1 참조))에 대한 응답을 관리하는 방법에 따라 해당 응답을 확인해야합니다. 당신은 문자열로 변환하여 문자열 응답을 얻을 수 있습니다 예를 들어,이 콘솔 창에 대한 응답을 작성합니다 :
HTTP 200
(즉, 성공)보다 전화를 다른 것을 반환하는 경우 말했다
byte[] rawResponse = webClient.UploadFile(url,fileName);
Console.WriteLine("Remote Response: {0}", System.Text.Encoding.ASCII.GetString(rawResponse));
to UploadFile은 WebException을 던집니다. 이것은 귀하의 응용 분야에 가장 적합한 방식으로 귀하가 그것을 잡아서 처리 할 수 있습니다.
그래서 모두 함께try
{
WebClient webClient = new WebClient();
byte[] rawResponse = webClient.UploadFile(url,fileName);
string response = System.Text.Encoding.ASCII.GetString(rawResponse);
...
Your response validation code
...
}
catch (WebException wexc)
{
...
Handle Web Exception
...
}
나는 HTTP 200 코드 이외를 발급하지 않습니다 파일 업로드 서비스가 예를 들어 주 1, 모든 오류가 서비스하고 이러한 내에서 잡은 것을두고 호출자에게 반환되는 XML 구조로 "파싱"됩니다. 그러면 호출자가 해당 XML을 구문 분석하여 업로드가 성공했는지 확인합니다.
msdn에서 제공되는 examples에서 응답을 확인하므로 좋은 스타일 일 수 있지만 직접하지는 않으며 아직 화상을 입지는 않습니다.
업로드가 200 (또는 200 범위) 이외의 StatusCode를 반환하면 WebClient.UploadFile이 WebException을 발생시켜야합니다.
플러그인으로 여러 파일과 양식 값을 동시에 쉽게 업로드 할 수있는 WebHelper 클래스가 포함 된 BizArk의 코드 참조 라이브러리가 있습니다. 이 프로젝트의 이름은 BizArk입니다.
응답이 나쁜 경우 WebException이 자동으로 발생합니다. –
감사합니다. 좋은 설명입니다. 셰어 포인트 사이트를 다룰 예정이므로 일반 웹 서버 응답을 찾을 필요가 있으므로 응답을 확인할 필요가 없습니다. –