zoukankan      html  css  js  c++  java
  • 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:

    1. string username = "john";
    2. string urlAddress = "http://www.yoursite.tld/somepage.php?username=" + username;
    3. using (WebClient client = new WebClient())
    4. {
    5. // this string contains the webpage's source
    6. string pagesource = client.DownloadString(urlAddress);
    7. }



    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:

    1. <?php
    2. $username = $_GET["username"]; //make sure you filter these values, before showing them
    3. echo $username; //$username == "john"
    4. ?>



    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:

    1. using System.Collections.Specialized;



    Then, you can jump to the code:

    1. string username = "john";
    2. string referer = "myprogram";
    3. string urlAddress = "http://www.yoursite.tld/somepage.php";
    4. using (WebClient client = new WebClient())
    5. {
    6. NameValueCollection postData = new NameValueCollection()
    7. {
    8. { "username", username }, //order: {"parameter name", "parameter value"}
    9. { "referer", referer }
    10. };
    11. // client.UploadValues returns page's source as byte array (byte[])
    12. // so it must be transformed into a string
    13. string pagesource = Encoding.UTF8.GetString(client.UploadValues(urlAddress, postData));
    14. }



    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):

      1. <?php
      2. $username = $_POST["username"];
      3. $referer = $_POST["referer"];
      4. echo $username." from ".$referer; // $username == "john" and $referer == "myprogram"
      5. ?>
  • 相关阅读:
    未能加载文件或程序集“file:///C:Program Files (x86)SAP BusinessObjectsCrystal Reports for .NET Framework 4.0
    iwms后台出现从客户端(ctl00$cphMain$logo="<img src="pic/logo.g...")中检测到有潜在危险的 Request.Form 值。错误解决方法
    Socket层实现系列 — accept()的实现(二)
    Socket层实现系列 — accept()的实现(一)
    Socket层实现系列 — getsockname()和getpeername()的实现
    洛谷1279 字串距离
    poj 2411
    poj 2411
    noip提高组 2010 关押罪犯 (洛谷1525)
    二分图匹配 (匈牙利算法) 洛谷3386
  • 原文地址:https://www.cnblogs.com/zeroone/p/3378777.html
Copyright © 2011-2022 走看看