2016-03-15 23 views
10

Có ai có thể giải thích cách thêm Tiêu đề ủy quyền trong Guzzle không? Tôi có thể thấy đoạn mã dưới đây làm việc cho thêm mật khẩu Tên truy nhập & nhưng trong trường hợp của tôi, tôi chỉ muốn thêm tiêu đề Authorization tựHướng dẫn HTTP - thêm tiêu đề Cấp phép trực tiếp vào yêu cầu

$client->request('GET', '/get', ['auth' => ['username', 'password'] 

Các Basic Authorization tiêu đề tôi muốn thêm vào yêu cầu GET của tôi: -

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI= 

Trả lời

5

Từ giao diện của mọi thứ, bạn đang cố gắng sử dụng khóa API. Để đạt được hiệu quả mong muốn, chỉ cần chuyển null vào làm tên người dùng, như dưới đây.

$client->request(
    $method, 
    $url, 
    [ 
     'auth' = [ 
      null, 
      $api_key 
     ], 
    ] 
); 
10

Tôi không biết làm thế nào tôi bỏ lỡ việc đọc mà bạn đang tìm kiếm tiêu đề auth cơ bản, nhưng dù sao hy vọng điều này sẽ giúp phần nào. Nếu bạn chỉ muốn thêm tiêu đề Ủy quyền, điều đó sẽ khá dễ dàng.

// Set various headers on a request 
$client->request('GET', '/get', [ 
'headers' => [ 
    'Authorization'  => 'PUT WHATEVER YOU WANT HERE' 
    ] 
]); 

tôi xây dựng theo yêu cầu của tôi trong bửa tiệc ăn từng miếng vì vậy tôi sử dụng như sau:

$client = new GuzzleHttp\Client(); 
$request = $client->createRequest('GET', '/get'); 
$request->addHeader('X-Authorization', 'OAuth realm=<OAUTH STUFF HERE>'); 
$resp = $client->send($request); 

Hy vọng rằng sẽ giúp. Ngoài ra, hãy đảm bảo bao gồm phiên bản Thư viện bạn đang sử dụng trong tương lai khi thay đổi cú pháp tùy thuộc vào phiên bản của bạn.

-1
use GuzzleHttp\Client; 

...

$client = new Client(['auth' => [$username, $password]]); 
$res = $client->request('GET', 'url', ['query' => ['param1'=>$p1, 'param2'=>'sometext']]); 
$res->getStatusCode(); 
$response = $res->getBody(); 

Điều này tạo ra một ứng dụng có thẩm quyền và gửi một yêu cầu get cùng với params mong muốn

6

Tôi đang sử dụng hay uống rượu 6. Nếu bạn muốn sử dụng Auth cơ bản Sơ đồ:

$client = new Client(); 
$credentials = base64_encode('username:password'); 
$response = $client->get('url', 
     [ 
      'headers' => [ 
       'Authorization' => 'Basic ' . $credentials, 
      ], 
     ]); 
Các vấn đề liên quan