Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 无法使用Box API V2创建共享链接_C#_.net_Cloud_Box Api - Fatal编程技术网

C# 无法使用Box API V2创建共享链接

C# 无法使用Box API V2创建共享链接,c#,.net,cloud,box-api,C#,.net,Cloud,Box Api,更新:我找到了答案,并将答案发布在下面 我要做的就是更新任何文件属性。描述,名字,任何东西,但无论我如何格式化它,我得到一个403 我需要能够修改一个文件,以便它可以通过云应用程序的Box API共享。我正在从V1更新其他人的代码,但它们不再可用。。。我尝试了很多方法,但大部分都只得到了403个禁止的错误 OAuth2没有问题,工作正常,我可以列出文件和文件夹,但不能修改它们。这个问题是关于分享的,但我也不能改变描述。box帐户是我的,我使用管理员凭据进行身份验证。如有任何建议,将不胜感激 这是

更新:我找到了答案,并将答案发布在下面

我要做的就是更新任何文件属性。描述,名字,任何东西,但无论我如何格式化它,我得到一个403

我需要能够修改一个文件,以便它可以通过云应用程序的Box API共享。我正在从V1更新其他人的代码,但它们不再可用。。。我尝试了很多方法,但大部分都只得到了403个禁止的错误

OAuth2没有问题,工作正常,我可以列出文件和文件夹,但不能修改它们。这个问题是关于分享的,但我也不能改变描述。box帐户是我的,我使用管理员凭据进行身份验证。如有任何建议,将不胜感激

这是我正在使用的方法。我传入了fileId和token,为了简洁起见,我省略了try/catch等

        string uri = string.Format("https://api.box.com/2.0/files/{0}", fileId);
        string body = "{\"shared_link\": {\"access\": \"open\"}}";

        byte[] postArray = Encoding.ASCII.GetBytes(body);

        using (var client = new WebClient())
        {
            client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            client.Headers.Add("Authorization: Bearer " + token);

            var response = client.UploadData(uri, postArray);

            var responseString = Encoding.Default.GetString(response);
        }

谢谢。

尝试将内容类型更改为“多部分/表单数据”吗

我只是在以下位置查找api:

看起来服务器需要一个多部分post

以下是关于发布多部分数据的堆栈溢出post:


好吧,我的荷马·辛普森时刻

上传数据是一个帖子,我需要做一个PUT。这是解决办法

        string uri = String.Format(UriFiles, fileId);
        string response = string.Empty;
        string body = "{\"shared_link\": {\"access\": \"open\"}}";
        byte[] postArray = Encoding.ASCII.GetBytes(body);

        try
        {
            using (var client = new WebClient())
            {
                client.Headers.Add("Authorization: Bearer " + token);
                client.Headers.Add("Content-Type", "application/json");
                response = client.UploadString(uri, "PUT", body);
            }
        }
        catch (Exception ex)
        {
            return null;
        }
        return response;

谢谢你的回复。是的,我看过文件。我所要做的就是:curl \-H“Authorization:Bearer ACCESS \-u TOKEN”\-d'{“name”:“new name.jpg”}\-X PUT,如果我放入multipart/form data或application/json,我仍然会得到403。