我已经尝试了所有网站上述错误的所有可行方法和解决方案。帮助我。以下是我使用过的代码。我已经注意了身份验证部分,因为它可以很好地列出草稿。字符串“iDraftString”是rfc2822格式化的字符串,其中包含所有内容,即正文和标题。我在gmail资源管理器中使用相同的Raw64,它正在成功创建草稿。所以我不认为格式化字符串有问题。
CreateDraft(string iDraftString)
{
string userId = "me@gmail.com";
string uriString = "https://www.googleapis.com/gmail/v1/users/" + userId + "/drafts";
Uri oLabelUri = new Uri(uriString);
HttpWebRequest oSendReq = HttpWebRequest.CreateHttp(oLabelUri);
oSendReq.Method = "POST";
oSendReq.Headers["Authorization"] = "Bearer " + accessToken;
StreamWriter oReqStream = new StreamWriter(oSendReq.GetRequestStream());
string Raw64 = Base64Encode(iDraftString);
string json = new JavaScriptSerializer().Serialize( new
{
message = new
{
raw = Raw64,
sizeEstimate = Raw64.Length
}
});
oReqStream.Write(json);
oReqStream.Close();
var oLabelResponse = (HttpWebResponse)oSendReq.GetResponse();
}
错误回复
{
"error":{
"errors":[
{
"domain":"global",
"reason":"invalid Argument",
"message":"Missing draft message"
}
],
"code":400,
"message":"Missing draft message"
}
}
答案 0 :(得分:0)
最后我得到了解决方案。 Http请求的内容类型必须设置为" application / json"
oSendReq.ContentType =" application / json";