当前位置: 首页 > 面试题库 >

Java使用REST将参数传递给parse.com云代码功能[重复]

艾鹭洋
2023-03-14
问题内容

我成功使用此代码HTTP通过GET方法发送 带有某些参数的请求

void sendRequest(String request)
{
    // i.e.: request = "http://example.com/index.php?param1=a&param2=b&param3=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&param2=b&param3=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。嘘?怎样有人能给我举个例子吗? 谢谢对不起我的英语

  • ...基本上是代码重复。是否有一种方法可以将函数作为方法参数传递,以优化这一点,使两个筛选条件都有一个方法?