Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文件发送到Trimble Connect(HTTP://Connect.Trimble.com/)_C#_Rest_Http Post - Fatal编程技术网

C# 将文件发送到Trimble Connect(HTTP://Connect.Trimble.com/)

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

我需要发送一些文件到服务(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;
    }
此代码返回错误:

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