簡體   English   中英

遠程服務器返回錯誤:(400)錯誤的Request.3

[英]The remote server returned an error: (400) Bad Request.3

在使用truevault嵌入Web進行數據存儲時,在上傳文件以及通過truevault獲取文檔ID時,我正在獲取遠程服務器運行以下代碼時返回錯誤:(400)Bad Request錯誤。 而在其他頁面上,相同的代碼可以正常工作

字符串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;

如果要上傳文件,則可能需要使用multipart/form-data 並非總是如此,但通常這是正確的做法。

還要檢查truevault允許的最大數據大小。

讓我知道是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM