在一本名为“深入理解Java Web技术内幕”的书中,有一些代码。
它的意思是创建一个HTTP请求:
HttpClent httpClient = createHttpClient();
PostMethod postMethod;
String domainName = Switcher.domain;
postMethod = new PostMehtod(domainName);
postMethod.addRequestHeader("Content-Type", "application/x-www-form- urlencoded;charset=GBK");
for (FilterData filterData :filterDatas) {
postMethod.addParameter("ip", filterData.ip);
postMethod.addParameter("count", String.valueOf(filterData.count));
}
try {
httpClient.executeMehtod(postMehtod);
postmethod.getResponseBodyAsString();
} catch(Exception e){
logger.error(e);
}
我知道HTTP包的结构。但是不知道第7行的FilterData
意味着什么。
谢谢您的帮助。
答案 0 :(得分:0)
假设postMethod
的类型为org.apache.commons.httpclient.methods.PostMethod
-然后使用仅addParameter(String paramName, String paramValue)
的两参数方法adds a new parameter to be used in the POST request body
向其中添加一些参数。
我猜想FilterData
是某种通用类,仅包含ip
和count
之类的值。如果ip
(这是count
或任何其他类型的集合,则向请求中多次添加具有相同名称(filterDatas
和FilterData[]
)的参数)包含多个条目。
这很好,根据Wikipedia:
[...]这是一种用于编码可能重复的键/值对的格式 键。
来源:https://en.wikipedia.org/wiki/POST_(HTTP)#Use_for_submitting_web_forms