简体   繁体   English

使用HTMLUnit发送带有多个关键字作为参数的POST请求

[英]Sending a POST request with multiple keywords as parameters using HTMLUnit

I am sending a POST request using HTMLUnit that sends keywords as parameters. 我正在使用HTMLUnit发送POST请求,该请求将关键字作为参数发送。 An example of the URL is: URL的示例是:

website.com/foo/bar/api?keywords=word1,word2,word3&language=en

The problem is my application is dynamically picking these words and the amount of words can go up to 10 or 20 or even more. 问题是我的应用程序正在动态地选择这些单词,单词的数量最多可以达到10或20个甚至更多。 How do you append a Set of words as values to a HTTP request. 如何将一组单词作为值附加到HTTP请求。 My code at the moment is: 目前,我的代码是:

requestSettings = new WebRequest(new URL("website.com/foo/bar/api?"),
                        HttpMethod.POST);
                Iterator<String> itr = list.iterator();
                while(itr.hasNext()) {
                    requestSettings.getRequestParameters()
                            .add(new NameValuePair("keywords[]", itr.next()));
                }
                requestSettings.getRequestParameters().add(new NameValuePair("language", "en"));
                System.out.println(requestSettings.getUrl().toString());
                response = webClient.getPage(requestSettings).getWebResponse();

This code does not return a valid respone. 此代码不会返回有效的响应。 What am I doing wrong here? 我在这里做错了什么?

Give this a try: 试试看:

using (var client = new WebClient())
{
     var dataObject = new {
         KeyWords = "one, two, three"
     };

     var serializer = new JavaScriptSerializer();
     var json = serializer.Serialize(dataObject);

     var response = client.UploadString("yourUrl", json);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM