2014-12-24 3 views
0

truevault를 통해 데이터를 저장하고 파일을 업로드하는 동안 truevault를 통해 문서 ID를 가져 오는 동안 원격 서버에서 오류를 반환했습니다 : (400) 다음 코드를 실행하는 동안 잘못된 요청 오류가 발생했습니다. 다른 페이지에서는 동일한 코드가 제대로 작동합니다.원격 서버에서 오류를 반환했습니다 : (400) 잘못된 요청 3

string documentId = "";

 string jsonDocument = JsonConvert.SerializeObject(NewsInfo); 

     string encodedJson = System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(jsonDocument)); 
     string formVars = "document=" + encodedJson; 
     string url = "https://api.truevault.com/v1/vaults/" + vaultId + "/documents"; 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.Accept = "*/*"; 
     request.Method = WebRequestMethods.Http.Post; 
     request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(apiKey + ":"))); 

     byte[] byteArray = Encoding.ASCII.GetBytes(formVars); 
     request.ContentLength = byteArray.Length; 
     Stream stream = request.GetRequestStream(); //open connection 
     stream.Write(byteArray, 0, byteArray.Length); // Send the data. 
     stream.Close(); 

     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

     StreamReader streamReader = new StreamReader(response.GetResponseStream()); 
     string html = streamReader.ReadToEnd(); 

     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      JToken token = JObject.Parse(html).SelectToken("document_id"); 
      documentId = (string)token; 
     } 

     response.Close(); 
     streamReader.Close(); 

     return documentId; 
+0

'catch (WebException we) { var resp = we.Response as HttpWebResponse; }' 위의 적용에서 얻은 실제 오류가 무엇인지 말해 줄 수 있습니까? – Avijit

+0

두 번째 @ Avijit이 요청 응답을 요청합니다. HTTP 400 응답을 사용하면 TrueVault의 API는 응답 본문에서 오류의 정확한 특성을 반환합니다. – Jason

답변

0

파일을 업로드하는 경우 아마도 multipart/form-data을 사용해야합니다. 항상 그런 것은 아니지만 일반적으로 할 일은 옳습니다.

또한 truevault에서 허용하는 최대 데이터 크기를 확인하십시오.

도움이되는지 알려주세요.

관련 문제