【发布时间】:2014-08-07 10:39:43
【问题描述】:
问题
我正在尝试通过消息将照片上传到 Facebook API。
代码片段 - 上传
requestUri = "https://graph.facebook.com/v2.0/me/photos?access_token=MyAccessToken"
var streamContent = new StreamContent(fileStream);
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "\"files\"",
FileName = "\"image.jpg\""
};
streamContent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
var messageContent = new StringContent("message=HelloWorld");
var resultJson = webRequestClient.Post(requestUri, new MultipartFormDataContent()
{
messageContent,
streamContent,
});
代码 - webRequestClient
public string Post(string uri, HttpContent postData)
{
return PostAsync(uri, postData).Result;
}
public async Task<string> PostAsync(string uri, HttpContent httpContent)
{
string resultStream;
using (var httpClient = new HttpClient())
{
var response = await httpClient.PostAsync(uri, httpContent);
response.EnsureSuccessStatusCode();
resultStream = await response.Content.ReadAsStringAsync();
}
return resultStream;
}
备注
- 如果我删除“messageContent”:它会上传他的图片
- 如果我使用 MultipartContent :它会上传图片但忽略我的“消息”
- 暂时不用担心为什么我不使用异步功能
- 如果失败,我会收到“错误”请求
- 当我在 requestUri 中附加“message=helloworld”时,它可以工作,但这并不是我的架构中处理此问题的最灵活的解决方案。
【问题讨论】:
标签: c# facebook-graph-api-v2.0