将文件发送到 Trimble Connect (HTTP://connect.trimble.com/)

Send file to Trimble Connect (HTTP://connect.trimble.com/)

我需要将一些文件发送给服务 (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 = "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;
    }

此代码 return 错误:

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);
        }
    }