C# Sending data using GET or POST ZZ
In this short article, I'll show you how to send data to a website from a C# application using GET or POST method. The tutorial also includes how to receive data from a website, by getting the page's source - so it's a neat way to check if the everything is working as intended.
1. GET Method
Using the GET method is the easiest way to send any
text data since all you have to do is to open the Url address with
already-defined parameters, with WebClient. Notice that WebClient is IDisposable you can use it this way:
- string username = "john";
- string urlAddress = "http://www.yoursite.tld/somepage.php?username=" + username;
- using (WebClient client = new WebClient())
- {
- // this string contains the webpage's source
- string pagesource = client.DownloadString(urlAddress);
- }
The code above opens a Url address, with 1 GET parameter: /somepage.php?username=john.
Now if you need to check what the program sent, use a PHP snippet like this one and look in the source of the page:
- <?php
- $username = $_GET["username"]; //make sure you filter these values, before showing them
- echo $username; //$username == "john"
- ?>
2. POST Method
Sending data using POST, even if it looks similar to GET, you'll need a different approach. Not very different, we're still using WebClient, but we must also include a new class: NameValueCollection. This dictionary-like container will store each parameter's name and value. Once all the data has been loaded, call WebClient.UploadValues to send the information to the webpage.
First, make sure you include this namespace:
- using System.Collections.Specialized;
Then, you can jump to the code:
- string username = "john";
- string referer = "myprogram";
- string urlAddress = "http://www.yoursite.tld/somepage.php";
- using (WebClient client = new WebClient())
- {
- NameValueCollection postData = new NameValueCollection()
- {
- { "username", username }, //order: {"parameter name", "parameter value"}
- { "referer", referer }
- };
- // client.UploadValues returns page's source as byte array (byte[])
- // so it must be transformed into a string
- string pagesource = Encoding.UTF8.GetString(client.UploadValues(urlAddress, postData));
- }
Once again, a short PHP snippet that can be used with the example above
(the result is shown in the source code, downloaded by
WebClient.UploadValues):
- <?php
- $username = $_POST["username"];
- $referer = $_POST["referer"];
- echo $username." from ".$referer; // $username == "john" and $referer == "myprogram"
- ?>
C# Sending data using GET or POST ZZ的更多相关文章
- 1125MySQL Sending data导致查询很慢的问题详细分析
-- 问题1 tablename使用主键索引反而比idx_ref_id慢的原因EXPLAIN SELECT SQL_NO_CACHE COUNT(id) FROM dbname.tbname FORC ...
- mysql索引无效且sending data耗时巨大原因分析
一朋友最近新上线一个项目,本地测试环境跑得好好的,部署到线上却慢得像蜗牛一样.后来查询了一下发现一个sql执行了16秒,有些长的甚至80秒.本地运行都是毫秒级别的查询.下面记录一下困扰了两天的,其中一 ...
- mysql 查询开销 sending data
1.执行一个查询,发现时间开销都在sending data,为什么?2.sending data容易误导,让人以为只是发送数据给客户端,实际上sending data包含两个过程:读取数据并处理,发送 ...
- MySQL Sending data导致查询很慢的问题详细分析【转载】
转自http://blog.csdn.net/yunhua_lee/article/details/8573621 [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时 ...
- mysql查询sending data占用大量时间的问题处理
问题描述:某条sql语句在测试环境执行只需要1秒不到,到了生产环境执行需要8秒以上 在phpmyadmin里面执行性能分析,发现sending data占用了差不多90%以上的时间 查询一下“Send ...
- 实战:MySQL Sending data导致查询很慢的问题详细分析(转)
这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法.理论.工具,很有代表性,分享给大家作为新年礼物:) [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的 ...
- 实战:MySQL Sending data导致查询很慢的问题详细分析(转)
出处:http://blog.csdn.net/yunhua_lee/article/details/8573621 这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法.理论.工具,很有 ...
- MySQL Sending data导致查询很慢的问题详细分析
这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法.理论.工具,很有代表性,分享给大家作为新年礼物:) [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的 ...
- 0223实战:MySQL Sending data导致查询很慢的问题详细分析
转自博客http://blog.csdn.net/yunhua_lee/article/details/8573621 [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据 ...
随机推荐
- 一、VSTO概述
一.什么是VSTO? VSTO = Visual Studo Tools for Office,是.net平台下的Office开发技术.相对于传统的VBA(Visual Basic Applicati ...
- easyui-helloworld
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- make makefile
Gcc的编译流程预处理阶段: gcc –E hello.c –o hello.i编译阶段: gcc –S hello.i –o hello.s汇编阶段:gcc –c hello.s –o hello. ...
- sort对象数组排序
function objectSort(property, desc) { //降序排列 if (desc) { return function (a, b) { return (a[property ...
- jsp 嵌套iframe 从iframe中表单提交并传值到外层
今天因需求迭代 更改元来代码 遇到了这么个问题 就是想在 iframe中提交后进行整个页面的跳转 并把iframe中的值传到外层jsp 大概就是这个样子 外层 a.jsp <div id=&qu ...
- mui h5 动态实现数据的移除和数据操作完后的重新获取
HTML 代码 <ul class="mui-table-view" id="OA_task_1"> <li class="mui- ...
- [記錄用]python py2app 檔案批次重新命名
demo.py 主要作用為 將同目錄下 *.mp4 檔案批次重新命名 例如: aaa001.mp4 ---重新命名為--> 001.mp4 aaa002.mp4 ---重新命名為--> 0 ...
- ASP.NET注意事项
1.服务器上bin目录下面的dll备份的时候,第一个点号之前的名字不能是一样的,否则会报错. 2.
- SDWebImage 清除缓存
1.找到SDImageCache类 2.添加如下方法: - (float)checkTmpSize { float totalSize = 0; NSDirectoryEnumerator *file ...
- bzoj 3165: [Heoi2013]Segment 动态凸壳
3165: [Heoi2013]Segment Time Limit: 40 Sec Memory Limit: 256 MBSubmit: 202 Solved: 89[Submit][Stat ...