【发布时间】:2009-11-05 05:21:56
【问题描述】:
我的问题与Java: HTTP Post to create new "Product" in a Ruby on Rails application非常相似
我有一个表格,我想将其“发布”到一个看起来像这样的表格
Offer:<br />
<input id="ride_togive" name="ride[togive]" size="30" type="text" />
</p>
<p>
Request for Offer:<br />
<input id="ride_totake" name="ride[totake]" size="30" type="text" />
</p>
我的 Java 代码如下所示
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://172.16.60.129:3000/rides");
// Configure the form parameters
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("ride_totake", "Ride to Vail"));
nvps.add(new BasicNameValuePair("ride_togive", "$20"));
post.addHeader("Content-Type","application/json");
try {
post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpResponse response = null;
try {
response = client.execute(post);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpEntity entity = response.getEntity();
System.out.println("form get: " + response.getStatusLine());
if (entity != null) {
try {
entity.consumeContent();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是 RoR 控制台的输出
Processing RidesController#create (for 172.16.60.1 at 2009-11-04 22:22:52) [POST]
Parameters: {"_json"=>"totake=Ride+to+Vail&togive=%2420"}
Ride Columns (0.6ms) SHOW FIELDS FROM `rides`
SQL (0.1ms) BEGIN
Ride Create (0.3ms) INSERT INTO `rides` (`isoffer`, `togive`, `howlong`, `updated_at`, `totake`, `created_at`)
VALUES(NULL, NULL, 0, '2009-11-05 05:22:52', NULL, '2009-11-05 05:22:52')
SQL (0.0ms) COMMIT
Redirected to http://172.16.60.129:3000/rides
Completed in 9ms (DB: 1) | 302 Found [http://172.16.60.129/rides]
我想我真正的问题是我应该如何处理 Java 中的 RoR 变量?
【问题讨论】:
-
我不确定您的意思是 RoR 变量,但是当所有事情都通过 HTTP POST 或 GET 发生时,那么所有这些值都将在 HTTP 响应中可用,对吧?
-
我所说的 RoR 变量是指由 RoR 生成的 html 表单,它位于我的问题的顶部。如何将值插入到 java 中的这些字段中?
标签: java ruby-on-rails httpclient