如何使用参数向API URL发送POST请求?

时间:2017-04-14 07:57:52

标签: c# asp.net sitemap

我想从此网址https://pro-sitemaps.com/api/

创建站点地图

获取站点地图详细信息的方法是get_sitemap

它需要两个参数api_key和site_id

如果有人可以建议/建议我如何在上述网址的方法中传递参数,我将不胜感激?

我正在使用vs2005和c#。

我从这段代码开始:

    string apiUrl = "https://pro-sitemaps.com/api/";

    Uri address = new Uri(apiUrl);

    // Create the web request
    HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;

编辑:我不认为这是重复的。

我没有像index.php或aspx这样的页面,所以如何添加参数?如果我这样写https://pro-sitemaps.com/api/api_key=abcd&site_id=123则不起作用。

更新:在重复标记之前,我希望有人能够仔细阅读这个问题。这里有三件事 - 一件是url,另一件是“get_sitemap”,第三件是两个参数。 现在我必须在“get_sitemap”方法中传递两个参数,并将API reqest发送到上面的URL。 url返回json数据。问题是我怎么能这样做,因为我在网上搜索但找不到答案。

最后我想出了如何做到这一点。如果有人仍然无法在这里找到答案,那就是一种方法。

ANSWER

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://pro-sitemaps.com/api/");

    string  postData = "method=get_sitemap&api_key=abcd&site_id=1234";
    byte[] data = Encoding.ASCII.GetBytes(postData);

    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = data.Length;

    using (Stream stream = request.GetRequestStream())
    {
        stream.Write(data, 0, data.Length);
    }

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

    Response.Write(responseString.ToString());

0 个答案:

没有答案