Java : Ruby on Rails 응용 프로그램에서 새로운 "Ride"를 만들기위한 HTTP 게시물

StackOverflow https://stackoverflow.com/questions/1678510

  •  16-09-2019
  •  | 
  •  

문제

내 질문은 매우 비슷합니다 Java : Ruby on Rails 응용 프로그램에서 새 "제품"을 만들기위한 HTTP 게시물

나는 다음과 같은 형태에 "게시"하고 싶은 양식이 있습니다.

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 변수를 어떻게 해결해야합니까?

도움이 되었습니까?

해결책

HTML 입력 태그에서 ID 대신 이름을 사용하십시오. 당신의 예에서, 그들은 "타기 [Togive]와 "Ride [Totake]입니다.

ROR 프로젝트에서 작동하는 샘플 Java 코드. httpclient 3.1을 사용하십시오

    PostMethod post = new PostMethod("http://localhost:3000/projects");
NameValuePair[] data = {
  new NameValuePair("project[name]", "from java"),
  new NameValuePair("project[life_cycle_id]", "5")
};
post.setRequestBody(data);
// execute method and handle any error responses.

new HttpClient().executeMethod(post);

ROR 콘솔에서 :

Processing ProjectsController#create (for 127.0.0.1 at 2009-11-04 22:07:39) [POS
T]
  Parameters: {"project"=>{"name"=>"from java", "life_cycle_id"=>"5"}}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top