windows phone 8 c# httpclient 第二次没有发送请求
windows phone 8 c# httpclient dosent send request for second time
我正在尝试 windows phone 8.1 中的一个简单应用程序。我有一个按钮,第一次单击它会发送一个请求,通过 url in php 将数据插入数据库。第二次单击时,它会通过 php 中的另一个 url 从数据库中的同一个 table 中删除数据。当我第一次运行它。它向我发送来自 httpclient response
的以下响应
StatusCode:200, ReasonPhase:'ok',
version:0.0,content:
System.Net.Http.streamContent,headers:
{
Date:thu,04 jun 2015 08:29:50 GMT
server:apache
server:phusion_passage/4.0.10
server: mod_bwlimited/1.4/5
server:mod_fcgid/2.3.9
X-powered-by:PHP/5.4/5.4.36
Keep-Alive:timeout=3,max=30
connection:keep-alive
Transfer-encoding:chunked
content-Type:text/html
}
第二次点击时,我也得到了相同的删除响应。如果我再次按下按钮,我将如何获得以下消息
StatusCode:200, ReasonPhase:'ok',
version:0.0,content:
System.Net.Http.streamContent,headers:
{
X-powered-by:PHP/5.4/5.4.36
Keep-Alive:timeout=3,max=30
Transfer-encoding:chunked
content-Type:text/html
}
显然没有数据插入数据库。
我紧急启动它,因为这是一个大项目的一小部分。
我的代码如下:
声明:
url = "http://demo.in/customer_info.php?";
url_delete = "http://demo.in/delete_noti.php?device_id=";
data1 = url + "device_id=4000";
data_delete = url_delete + "4000";
方法:
private async void sendData(string data)
{
// MessageBox.Show(data1);
using (HttpClient hc = new HttpClient())
{
var response = await hc.GetAsync(data);
MessageBox.Show(response.ToString());
hc.Dispose();
}
}
private async void deleteData(string data)
{
//MessageBox.Show(url_delete1);
using (HttpClient hc = new HttpClient())
{
var response = await hc.GetAsync(data);
//MessageBox.Show(hc1.ToString());
MessageBox.Show(response.ToString());
hc.Dispose();
}
}
用法:
private void btn_click(object sender, RoutedEventArgs e)
{
if (count == 0)
{
sendData(data1);
(sender as Button).Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(225, 247, 98, 15));
MessageBox.Show("sending");
// suspend(a);
count = 1;
}
else
{
deleteData(url_delete);
(sender as Button).Background = new SolidColorBrush(Colors.Black);
MessageBox.Show("deleting");
count = 0;
}
}
正如@Null Pointer 所说,这可能是一个缓存问题。
你可以像他说的那样给url添加一个随机参数,或者如果你没有或不能给url添加参数,你可以添加这行代码来忽略缓存:
hc.DefaultRequestHeaders.IfModifiedSince = DateTime.Now;
我正在尝试 windows phone 8.1 中的一个简单应用程序。我有一个按钮,第一次单击它会发送一个请求,通过 url in php 将数据插入数据库。第二次单击时,它会通过 php 中的另一个 url 从数据库中的同一个 table 中删除数据。当我第一次运行它。它向我发送来自 httpclient response
的以下响应 StatusCode:200, ReasonPhase:'ok',
version:0.0,content:
System.Net.Http.streamContent,headers:
{
Date:thu,04 jun 2015 08:29:50 GMT
server:apache
server:phusion_passage/4.0.10
server: mod_bwlimited/1.4/5
server:mod_fcgid/2.3.9
X-powered-by:PHP/5.4/5.4.36
Keep-Alive:timeout=3,max=30
connection:keep-alive
Transfer-encoding:chunked
content-Type:text/html
}
第二次点击时,我也得到了相同的删除响应。如果我再次按下按钮,我将如何获得以下消息
StatusCode:200, ReasonPhase:'ok',
version:0.0,content:
System.Net.Http.streamContent,headers:
{
X-powered-by:PHP/5.4/5.4.36
Keep-Alive:timeout=3,max=30
Transfer-encoding:chunked
content-Type:text/html
}
显然没有数据插入数据库。
我紧急启动它,因为这是一个大项目的一小部分。 我的代码如下:
声明:
url = "http://demo.in/customer_info.php?";
url_delete = "http://demo.in/delete_noti.php?device_id=";
data1 = url + "device_id=4000";
data_delete = url_delete + "4000";
方法:
private async void sendData(string data)
{
// MessageBox.Show(data1);
using (HttpClient hc = new HttpClient())
{
var response = await hc.GetAsync(data);
MessageBox.Show(response.ToString());
hc.Dispose();
}
}
private async void deleteData(string data)
{
//MessageBox.Show(url_delete1);
using (HttpClient hc = new HttpClient())
{
var response = await hc.GetAsync(data);
//MessageBox.Show(hc1.ToString());
MessageBox.Show(response.ToString());
hc.Dispose();
}
}
用法:
private void btn_click(object sender, RoutedEventArgs e)
{
if (count == 0)
{
sendData(data1);
(sender as Button).Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(225, 247, 98, 15));
MessageBox.Show("sending");
// suspend(a);
count = 1;
}
else
{
deleteData(url_delete);
(sender as Button).Background = new SolidColorBrush(Colors.Black);
MessageBox.Show("deleting");
count = 0;
}
}
正如@Null Pointer 所说,这可能是一个缓存问题。
你可以像他说的那样给url添加一个随机参数,或者如果你没有或不能给url添加参数,你可以添加这行代码来忽略缓存:
hc.DefaultRequestHeaders.IfModifiedSince = DateTime.Now;