laravellaravel-http-client

How to post request with query params in laravel 9


I am trying to send post request with query params, just like this screenshot

enter image description here

I used Http::post but it supports only JSON as far as I know. I just want to send request just like the screenshot. cause API data only supports parameter wise. Here What I tried but failed to achieve that.

FormController.php:

 public function post_parameter_wise(Request $request,$lp_campaign_id, $lp_campaign_key, $first_name, $last_name, $email, $phone, $zip_code){
        $form = new Form();
        $fName = $form->first_name = $request->get($first_name);
        $lName = $form->last_name = $request->get($last_name);
        $cCmail = $form->email = $request->get($email);
        $cPhone = $form->phone = $request->get($phone);
        $zCode = $form->zip_code = $request->get($zip_code);

        $response = Http::post("https://t.vivint.com/post.do", [
            "lp_campaign_id" => $lp_campaign_id,
            "lp_campaign_key" => $lp_campaign_key,
//            "lp_supplier_id" => "",
            "first_name" => $fName,
            "last_name" => $lName,
            "email" => $cCmail,
            "phone" => $cPhone,
            "zip_code" => $zCode
        ]);

        dd($response);

Solution

  • Can't leave a comment so disregard this as the answer

    Preferably, you just need to change it from a Post request to a Get request and it will work

    $response = Http::get("https://t.vivint.com/post.do", [...

    But a post request will contain the data as a post request should. If you have to use post and define the query params then you should do it as follows

    public function post_parameter_wise(Request $request,$lp_campaign_id, $lp_campaign_key, $first_name, $last_name, $email, $phone, $zip_code){
            $form = new Form();
            $fName = $form->first_name = $request->get($first_name);
            $lName = $form->last_name = $request->get($last_name);
            $cCmail = $form->email = $request->get($email);
            $cPhone = $form->phone = $request->get($phone);
            $zCode = $form->zip_code = $request->get($zip_code);
    
            $response = Http::post("https://t.vivint.com/post.do?lp_campaign_id=".$lp_campaign_id."&lp_campaign_key=".$lp_campaign_key."&first_name=".$fName."&last_name=".$lName."&email=".$cCmail."&phone=".$cPhone."&zip_code=".$zCode, []);
    
            dd($response);
    

    Although this is really just forcing it to