C# 将文件发送到Trimble Connect(HTTP://Connect.Trimble.com/)
我需要发送一些文件到服务(connect.trimble.com)。 我不明白,如何上传文件到服务? 我有API指令: 我使用这个代码:C# 将文件发送到Trimble Connect(HTTP://Connect.Trimble.com/),c#,rest,http-post,C#,Rest,Http Post,我需要发送一些文件到服务(connect.trimble.com)。 我不明白,如何上传文件到服务? 我有API指令: 我使用这个代码: string result = string.Empty; string Url = "https://app.prod.gteam.com/tc/api/2.0/auth"; string TypeContent = "application/json"; string Method = "P
string result = string.Empty;
string Url = "https://app.prod.gteam.com/tc/api/2.0/auth";
string TypeContent = "application/json";
string Method = "POST";
object obj = new
{
emailAddress = "MyMail",
key = "MyKey"
};
string Header = string.Empty;
result = RequestPost(Url, TypeContent, Method, Header, obj);
var qwe = result.Split(new char[] { '"' });
Header = "Bearer " + qwe[3];
Url = "https://app.prod.gteam.com/tc/api/2.0/files";
TypeContent = "multipart/form-data";
Method = "POST";
obj = new
{
parentId = "yVWsT_jewHs"
};
result = RequestPost(Url, TypeContent, Method, Header, obj);
private static string RequestPost(string Url, string TypeContent, string Method, string Header, object obj)
{
string result = string.Empty;
var httpWebRequest = (HttpWebRequest)WebRequest.Create(Url);
httpWebRequest.ContentType = TypeContent;
httpWebRequest.Method = Method;
if (!string.IsNullOrEmpty(Header))
{
httpWebRequest.Headers.Add("Authorization", Header);
}
if (obj != null)
{
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(obj);
streamWriter.Write(json);
}
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
return result;
}
此代码返回错误:
The remote server returned an error: (400) Bad Request.
我自己找到了答案。此主题可以关闭
string Url = "app.prod.gteam.com/tc/api/2.0/files?parentId=bHHkdeBSizA";
bHHkdeBSizA-此ID是父文件夹ID,文件将位于其中,在当前API中,parentId可能等于rootId
public static void UploadFile(string url, string filePath, string Header)
{
using (var client = new WebClient())
{
if (!string.IsNullOrEmpty(Header))
{
client.Headers.Add("Authorization", Header);
}
byte[] result = client.UploadFile(url, filePath);
string responseAsString = Encoding.Default.GetString(result);
}
}