我有一个这样的网址:
http://treen.workcloud.at/?tag=answererq&tan=123456789&answer=1&id=1
当我在浏览器中输入tan时,答案和Id会插入到MySql数据库中。现在我希望它在C#中实现,但我不知道如何完成它。这是我到目前为止的代码。
string qid = lbid.Content.ToString();
int answer = 1;
string urla = @"http://treen.workcloud.at/?tag=answereq&tan=" + tan + id + answer;
var httpWebRequest = (HttpWebRequest)WebRequest.Create(urla);
//httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
答案 0 :(得分:2)
首先我认为你的网址不对。要传递参数,格式应为。
string url= www.blahblahblah.com?parameter1=myvalue¶meter2=myothervalue
调用Request.QueryString [" parameter1"]检索url中名为parameter1的值,以便为
返回值 var parameter1 = Request.QueryString["parameter1"];\\equals myvalue
第二,一旦检索到值,就可以将它们传递给方法以更新数据库
var parameter1 = Request.QueryString["parameter1"];
var parameter2 = Request.QueryString["parameter2"];
//check if the querystring exists
if (parameter1 != null && parameter2 !=null)
{
UpdateDatabase (parameter1, parameter2);
}
您可能需要添加system.web命名空间。请参阅MDSN文档here。
答案 1 :(得分:1)
您的网址中有?
,这是不正确的。它应该是?
。这是正确的网址:
http://treen.workcloud.at?tag=answererq&tan=123456789&answer=1&id=1
?
表示GET
请求中查询字符串的开头。
此外,由于它是GET请求,因此您不应设置内容类型标头,也不应将内容附加到请求中。使用更像这样的东西:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://treen.workcloud.at?tag=answererq&tan=123456789&answer=1&id=1");
using (var webResponse = (HttpWebResponse)request.GetResponse())
{
using (var streamReader = new StreamReader(webResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
答案 2 :(得分:0)
如果您想从网址获取值的最简单方法,为什么不从查询字符串中读取它们。例如。:
string tanValue = Request.QueryString["tan"];
string answerValue = Request.QueryString["answer"];
string idValue = Request.QueryString["id"];