当使用truevault嵌入web进行数据存储时,在上传文件期间,为了通过truevault获取文档id,我得到远程服务器返回一个错误:(400)运行以下代码时出现错误请求错误。而在其他页面上,相同的代码运行良好
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;发布于 2014-12-24 21:09:14
如果你正在上传一个文件,你可能需要使用multipart/form-data。并不总是这样,但通常情况下,这是正确的做法。
还要检查truevault允许的最大数据大小。
如果有帮助,请告诉我。
https://stackoverflow.com/questions/27633645
复制相似问题