我成功使用此代码HTTP
通过GET
方法发送 带有某些参数的请求
void sendRequest(String request)
{
// i.e.: request = "http://example.com/index.php?param1=a¶m2=b¶m3=c";
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "text/plain");
connection.setRequestProperty("charset", "utf-8");
connection.connect();
}
现在,我可能需要通过POST
方法发送参数(即param1,param2,param3),因为它们很长。我在想为该方法添加一个额外的参数(即String
httpMethod)。
我如何才能尽可能少地更改上面的代码,以便能够通过GET
或发送参数POST
?
我希望改变
connection.setRequestMethod("GET");
至
connection.setRequestMethod("POST");
本来可以解决问题的,但是参数仍然通过GET方法发送。
有HttpURLConnection
没有什么方法会有所帮助?有任何有用的Java构造吗?
任何帮助将不胜感激。
在GET请求中,参数作为URL的一部分发送。
在POST请求中,将参数作为请求的正文发送到标头之后。
要使用HttpURLConnection进行POST,您需要在打开连接后将参数写入连接。
这段代码可以帮助您入门:
String urlParameters = "param1=a¶m2=b¶m3=c";
byte[] postData = urlParameters.getBytes( StandardCharsets.UTF_8 );
int postDataLength = postData.length;
String request = "http://example.com/index.php";
URL url = new URL( request );
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
conn.setDoOutput( true );
conn.setInstanceFollowRedirects( false );
conn.setRequestMethod( "POST" );
conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty( "charset", "utf-8");
conn.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
conn.setUseCaches( false );
try( DataOutputStream wr = new DataOutputStream( conn.getOutputStream())) {
wr.write( postData );
}
问题内容: 我正在使用py.test来测试包装在python类MyTester中的某些DLL代码。为了进行验证,我需要在测试期间记录一些测试数据,然后再进行更多处理。由于我有许多test _…文件,因此我想在大多数测试中重用测试器对象的创建(MyTester的实例)。 由于tester对象是获得DLL变量和函数的引用的对象,因此我需要将DLL变量的列表传递给每个测试文件的tester对象(要记录的
是否可以将选项从azkaban工作流传递到基础职务代码? 我有这样的东西,它有点适用于硬编码/预先知道的日期,但我希望有一个选项来指定执行流时的日期: 谢了,沙拉特
我需要使用Liferay的索引来搜索与确定字符串匹配的用户,这可以通过使用UserLocalServiceImpl搜索(长公司ID、字符串关键字、int状态、LinkedHashMap)实现 此外,我希望能够通过过滤用户。 我希望我可以将用户组ID传递给这个函数到参数中,但我似乎找不到任何关于参数应该是什么的文档。 通过查看源代码,它看起来像是被添加到用于生成查询的中,但我无法跟踪代码到随后使用的
问题内容: 我正在使用testNG,Selenium和Jenkins建立测试自动化框架。该代码工作正常,它读取一个或多个csv文件并将其用作测试数据。我从詹金斯进行测试。 如您所见,浏览器,URL和CSV文件是硬编码的。我希望能够将这些作为参数传递。做这个的最好方式是什么?是否可以让他们通过詹金斯? 我正在考虑构建一个仪表板,在其中可以指定要使用哪种浏览器运行哪些测试(csv文件)。 这是我正在运
我有一个web项目与VM参数称为"-Dfile" 我在applicationContext上使用这个参数如下: 在Eclipse中,为了进行测试,我使用“运行配置”来设置如下值: 现在,我想在ApacheTomcat上测试我的webapp,所以我需要设置/发送folder VM参数。 我怎么做到的? 我必须使用setenv。嘘?怎样有人能给我举个例子吗? 谢谢对不起我的英语
...基本上是代码重复。是否有一种方法可以将函数作为方法参数传递,以优化这一点,使两个筛选条件都有一个方法?