C# 谷歌硬盘可恢复上传无响应

C# 谷歌硬盘可恢复上传无响应,c#,google-api,google-drive-api,http-upload,C#,Google Api,Google Drive Api,Http Upload,好吧,我不知道为什么这不起作用。同样的代码只适用于上传元数据,然后同样适用于多部分上传。我无法恢复上传到工作 表示第1步应返回一个带有上载id的200 ok,但是下面的行不返回任何内容。内容长度为0,没有错误响应,没有任何内容 string responseFromServer = reader.ReadToEnd(); 我的代码: FileInfo info = new FileInfo(pFilename); String MimeType = GetMimeType(pFilename)

好吧,我不知道为什么这不起作用。同样的代码只适用于上传元数据,然后同样适用于多部分上传。我无法恢复上传到工作

表示第1步应返回一个带有上载id的200 ok,但是下面的行不返回任何内容。内容长度为0,没有错误响应,没有任何内容

string responseFromServer = reader.ReadToEnd();
我的代码:

FileInfo info = new FileInfo(pFilename);
String MimeType = GetMimeType(pFilename).ToString();
string footer = "\r\n";
//Createing the MetaData to send
List<string> _postData = new List<string>();
_postData.Add("{");
_postData.Add("\"title\": \"" + info.Name + "\"");
_postData.Add("}");
string postData = string.Join(" ", _postData.ToArray());
byte[] MetaDataByteArray = Encoding.UTF8.GetBytes(postData);
// creating the Data For the file
byte[] FileByteArray = System.IO.File.ReadAllBytes(pFilename);

string url = "https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable";
int headerLenght =  MetaDataByteArray.Length  +footer.Length;

WebRequest request = WebRequest.Create(url);
request.Method = "POST";
request.Headers.Add("Authorization", string.Format("Bearer {0}", myAutentication.accessToken));
request.ContentLength = headerLenght;
request.ContentType = "application/json; charset=UTF-8";
request.Headers.Add("X-Upload-Content-Type", MimeType);
request.Headers.Add("X-Upload-Content-Length", FileByteArray.Length.ToString());           

Stream dataStream = request.GetRequestStream();
dataStream.Write(MetaDataByteArray, 0, MetaDataByteArray.Length); // write the MetaData 
        dataStream.Write(Encoding.UTF8.GetBytes(footer), 0, Encoding.UTF8.GetByteCount(footer));  // done writeing add return just 
        dataStream.Close();

  try
      {
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();


            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Display the status.  IT returns OK 


            // Get the stream containing content returned by the server.
            dataStream = response.GetResponseStream();

            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);

            // Read the content.
            string responseFromServer = reader.ReadToEnd();

            // Display the content.  ResponseFromServer returns "" nothing.  
            //Console.WriteLine(responseFromServer);
            // Clean up the streams.
            reader.Close();
            dataStream.Close();
            response.Close();
}
catch (Exception ex)
        {
            return "Exception uploading file: uploading file." + ex.Message;
            //return Error.CreateJsonError("HttpWeb.Post", "1", "Error: " + ex.Message);
        }
FileInfo=newfileinfo(pFilename);
字符串MimeType=GetMimeType(pFilename).ToString();
字符串页脚=“\r\n”;
//正在创建要发送的元数据
列表_postData=新列表();
_添加(“{”);
_postData.Add(“\”title\”:\”+info.Name+“\”);
_postData.Add(“}”);
string postData=string.Join(“,_postData.ToArray());
byte[]MetaDataByteArray=Encoding.UTF8.GetBytes(postData);
//为文件创建数据
byte[]FileByteArray=System.IO.File.ReadAllBytes(pFilename);
字符串url=”https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable";
int headerLenght=MetaDataByteArray.Length+footer.Length;
WebRequest=WebRequest.Create(url);
request.Method=“POST”;
Add(“Authorization”,string.Format(“Bearer{0}”,myAutentication.accessToken));
request.ContentLength=标题长度;
request.ContentType=“application/json;charset=UTF-8”;
request.Headers.Add(“X-Upload-Content-Type”,MimeType);
Add(“X-Upload-Content-Length”,FileByteArray.Length.ToString());
Stream dataStream=request.GetRequestStream();
dataStream.Write(MetaDataByteArray,0,MetaDataByteArray.Length);//编写元数据
dataStream.Write(Encoding.UTF8.GetBytes(footer),0,Encoding.UTF8.GetByteCount(footer));//完成写入添加返回刚才
dataStream.Close();
尝试
{
HttpWebResponse=(HttpWebResponse)request.GetResponse();
Console.WriteLine(((HttpWebResponse)response.StatusDescription);
//显示状态。它返回OK
//获取包含服务器返回的内容的流。
dataStream=response.GetResponseStream();
//使用StreamReader打开流以便于访问。
StreamReader=新的StreamReader(数据流);
//阅读内容。
字符串responseFromServer=reader.ReadToEnd();
//显示内容。ResponseFromServer返回“nothing”。
//Console.WriteLine(responseFromServer);
//清理溪流。
reader.Close();
dataStream.Close();
response.Close();
}
捕获(例外情况除外)
{
返回“异常上传文件:上传文件”+ex.消息;
//返回Error.CreateJsonError(“HttpWeb.Post”、“1”、“Error:+ex.Message”);
}

我终于明白了这一点。上载id将在响应标头中返回

WebResponse response = request.GetResponse();
string Location = response.Headers["Location"];

我是谷歌云存储的新手,请告诉我如何让authtoken调用可恢复上传api。请帮帮我。哇,这是个很老的问题。但我会选择客户端库