2016-09-02 4 views
0

내 무지를 용서해 주시죠, 이것이 드루팔 (Drupal 8)의 첫 번째 시도이며, 나는 좋은 PHP 개발자가 아닙니다. 그러나 나는 몇 시간 동안 읽고 있었다. drupal_http_request()를 대체하는 새로운 Guzzle을 사용하여 게시물을 작성하려고합니다. Curl을 사용하여이 작업을 수행했지만이 작업을 올바른 방향으로 진행할 수는 없습니다. 나는 단지 그것을 얻지 않고있다.드루팔 (Drupal 8 Guzzle Format Query String

다음은 사용자 지정 양식에서 데이터를 가져 오는 배열의 샘플입니다. 또한 문자열을 작성한 사용자 지정 변수를 사용하여이 작업을 시도했습니다.

$fields = array(
    "enroll_id" => $plan, 
    "notice_date" => $date, 
    "effective_date" => $date, 
); 

$client = \Drupal::httpClient(); 
$response = $client->post('myCustomURL', ['query' => $fields]); 
$data = $response->getBody()->getContents(); 
try { 
drupal_set_message($data); 
} catch (RequestException $e) { 
watchdog_exception('MyCustomForm', $e->getMessage()); 
} 

이 실제로 아래 $ 데이터 내 API에서 거부 됨의 결과를 반환합니다 -하지만 URL 쿼리 => 배열을 포함하는 추가하지 않습니다. 나는 여러 가지 조합을 시도했는데 POST에 완벽하게 구축 된 URL을 두었다. (테스트 한 결과 내 API로 작동 함) 여전히 내 API에서 동일한 결과를 얻는다. 결국 내가 성취하고자하는 것은

https://myCustomURL?enroll_id=value&notice_date=12/12/12&effective_date=12/12/12 

어떤 방향이나 조언을 주시면 감사하겠습니다.

답변

0

$client->post을 사용하면 POST 요청을 보냅니다. 직접 테스트 한 URL을보고 GET 요청을 원합니다.

$client->get 또는 $client->request을 GET 매개 변수와 함께 사용하십시오. Guzzle documentation의 추가 정보 및 예.

0

답장을 보내 주셔서 감사합니다. 내 게시물에서 몇 가지 변경하여 제대로 작동하도록 할 수있었습니다. 먼저 클라이언트 변경 ->를 요청에 ('POST', XXX를) 게시을하고 "몸"이 사용되지 않습니다"쿼리"에 "form_params을"변경.

http://docs.guzzlephp.org/en/latest/quickstart.html#query-string-parameters

$client = \Drupal::httpClient(); 
$response = $client->request('POST','https://myURL.html', ['form_params' => $fields]); 
$data = $response->getBody()->getContents();