gpt4 book ai didi

c# - Silverlight,PostAsync 没有返回响应

转载 作者:行者123 更新时间:2023-11-30 18:29:20 25 4
gpt4 key购买 nike

我一直在尝试使用 POST 将图像上传到我的网站,图像被转换为​​ base64 以进行传输。

不幸的是,我偶然发现了我的 Siverlight 应用程序的错误。我已经成功获取了图片的base64字符串,现在我要上传它,这是我用来执行POST请求的代码:

HttpClient hc = new HttpClient();
HttpResponseMessage response = hc.PostAsync("http://mywebsite.com/service.php", new StringContent("image=" + base64)).Result;
if (response.IsSuccessStatusCode)
{
MessageBox.Show("Uploaded.");
}

第二行运行时没有任何反应,只是完全暂停,从不跳转到第三行。

因为它是异步的,我认为我应该在 await 之前添加,将行更改为:

var response = await hc.PostAsync("http://mywebsite.com/kurv.php", new StringContent("image=" + base64));

它给了我错误:

Cannot await 'System.Threading.Tasks.Task System.Net.Http.HttpResponseMessage>'

我还检查了 silverlight,它说 silverlight 无法访问它不允许访问的站点,因此我在站点的根目录 (http://mywebsite.com/) 中添加了两个文件:clientaccesspolicy.xml和 crossdomain.xml。

clientaccesspolicy.xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

我的 crossdomain.xml 看起来像这样:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

当然这是不安全的,但我现在使用它只是为了进行测试,并让我的 silverlight 应用程序正常工作。

最佳答案

不要使用 await,使用 .ContinueWith,如下所示。 Silverlight 不能很好地处理阻塞操作。

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost/myproject/");

// Add an Accept header for JSON format.
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));

var t = client.GetAsync("api/values");
t.ContinueWith(p =>
{
if (p.Result.IsSuccessStatusCode)
{
var users = p.Result.Content.ReadAsByteArrayAsync().Result;
if (users != null)
{

}

}

});

关于c# - Silverlight,PostAsync 没有返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com