c# - 响应 URL 正在返回以前的 Imgur 图片 URL 而不是当前图片 URL
问题描述
我已经构建了一个新的 Unity 项目,它使用 C# 和 System.Net 来访问 Imgur 的 API。我可以从任何地方将图像提取到我的应用程序中,并且可以通过我的新应用程序的客户端 ID 将屏幕截图上传到 Imgur。成功上传后,我可以获得相当数量的响应数据,但响应中的 URL 总是过时 1。如果我刚刚上传了屏幕截图 D,我返回的 URL 将链接到屏幕截图 C,依此类推.
以下是响应数据的样子:
这是我在所有尝试中得到的结果,包括使用w.UploadValuesAsync()
和尝试 Imgur 应用程序的匿名和 OAuth2(无回调)版本。
这是我的大部分代码,来自这里。
public void UploadThatScreenshot()
{
StartCoroutine(AppScreenshotUpload());
}
IEnumerator AppScreenshotUpload()
{
yield return new WaitForEndOfFrame();
ScreenCapture.CaptureScreenshot(Application.persistentDataPath + filename);
//Make sure that the file save properly
float startTime = Time.time;
while (false == File.Exists(Application.persistentDataPath + filename))
{
if (Time.time - startTime > 5.0f)
{
yield break;
}
yield return null;
}
//Read the saved file back into bytes
byte[] rawImage = File.ReadAllBytes(Application.persistentDataPath + filename);
//Before we try uploading it to Imgur we need a Server Certificate Validation Callback
ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback;
//Attempt to upload the image
using (var w = new WebClient())
{
string clientID = "a95bb1ad4f8bcb8";
w.Headers.Add("Authorization", "Client-ID " + clientID);
var values = new NameValueCollection
{
{ "image", Convert.ToBase64String(rawImage) },
{ "type", "base64" },
};
byte[] response = w.UploadValues("https://api.imgur.com/3/image.xml", values);
string returnResponse = XDocument.Load(new MemoryStream(response)).ToString();
Debug.Log(returnResponse);
}
}
为什么我返回的 URLw.UploadValues(...)
总是落后一个?
解决方案
推荐阅读
- python - 使用 Memcached 将数据从 Python 传递到 C#
- react-native - 我如何在视图中使用滚动视图以响应本机
- python - 当列表在元组中时,如何从列表中的字符串中解析单词?
- php - 如何在 Laravel 刀片上计算
- twig - Twig批处理功能:2、3、2项
- javascript - 如何从 json 输出计算空闲可用时间?
- c# - 关于 CollectionView 取消选中 SelectedItem
- autodesk-forge - 如何以并行方式最好地处理多个 WorkItem?
- httpwebrequest - 字母之间的 Tika 额外空格 - 有没有办法通过 Web API 使用 setEnableAutoSpace?
- multiclass-classification - 多类分类一对一