【问题标题】:Sending form-data post request with guzzle使用 guzzle 发送表单数据发布请求
【发布时间】:2017-12-12 15:31:25
【问题描述】:

我正在使用guzzle http client,并希望在使用 js 完成后实现如下所示的 post 请求:

        var formData = JSON.stringify( { id: formID, fields: fields, settings: settings, extra: extra } );
        var data = {
            'action': 'nf_ajax_submit',
            'security': nfFrontEnd.ajaxNonce,
            'formData': formData
        }

        var that = this;

        jQuery.ajax({
            url: nfFrontEnd.adminAjax,
            type: 'POST',
            data: data,
            cache: false,
            success: function( data, textStatus, jqXHR ) {
                try {
                    var response = jQuery.parseJSON( data );
                    nfRadio.channel( 'forms' ).trigger( 'submit:response', response, textStatus, jqXHR, formModel.get( 'id' ) );
                    nfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:response', response, textStatus, jqXHR );
                    jQuery( document ).trigger( 'nfFormSubmitResponse', { response: response, id: formModel.get( 'id' ) } );
                } catch( e ) {
                    console.log( e );
                    console.log( 'Parse Error' );
                    console.log( e );
                }

            },

如何使用 guzzle 发出帖子请求 form-data,我尝试过这样做:

    $url = 'http://ytf.app/wp-admin/admin-ajax.php';
    $data = [];
    $data['security'] = $this->getNonce();
    $data['action'] = 'nf_ajax_submit';
    $data['formData'] = $request->all();
    $formData = json_encode($data);

    $client   = new Client();
    $response = $client->request('POST', $url, [
        'body' =>  $formData,
    ]);

    $body = json_decode($response->getBody(), true);

    if ($body['success'] === true && $body['data'] !== false) {
        return $body['data'];
    }

但是,这不起作用,我该怎么做?

【问题讨论】:

    标签: php guzzle


    【解决方案1】:
    $http = new GuzzleHttp\Client;
    
    $response = $http->post('https://your-endpoint.com', [
        'form_params' => [
            'security' =>  $data['security'],
            'action'   =>  $data['action']
        ],
    ]);
    

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 2018-02-07
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      相关资源
      最近更新 更多