22namespace Qiniu \Http ;
33
44use Qiniu \Config ;
5- use Qiniu \Http \Request ;
6- use Qiniu \Http \Response ;
75
86final class Client
97{
10- public static function get ($ url , array $ headers = array ())
8+ /**
9+ * @param $url
10+ * @param array $headers
11+ * @param RequestOptions $opt
12+ * @return Response
13+ */
14+ public static function get ($ url , array $ headers = array (), $ opt = null )
1115 {
12- $ request = new Request ('GET ' , $ url , $ headers );
16+ $ request = new Request ('GET ' , $ url , $ headers, null , $ opt );
1317 return self ::sendRequest ($ request );
1418 }
1519
16- public static function delete ($ url , array $ headers = array ())
20+ /**
21+ * @param $url
22+ * @param array $headers
23+ * @param array $opt detail see {@see Request::$opt}
24+ * @return Response
25+ */
26+ public static function delete ($ url , array $ headers = array (), $ opt = null )
1727 {
18- $ request = new Request ('DELETE ' , $ url , $ headers );
28+ $ request = new Request ('DELETE ' , $ url , $ headers, null , $ opt );
1929 return self ::sendRequest ($ request );
2030 }
2131
22- public static function post ($ url , $ body , array $ headers = array ())
32+ /**
33+ * @param $url
34+ * @param $body
35+ * @param array $headers
36+ * @param RequestOptions $opt
37+ * @return Response
38+ */
39+ public static function post ($ url , $ body , array $ headers = array (), $ opt = null )
2340 {
24- $ request = new Request ('POST ' , $ url , $ headers , $ body );
41+ $ request = new Request ('POST ' , $ url , $ headers , $ body, $ opt );
2542 return self ::sendRequest ($ request );
2643 }
2744
28- public static function PUT ($ url , $ body , array $ headers = array ())
45+ /**
46+ * @param $url
47+ * @param $body
48+ * @param array $headers
49+ * @param RequestOptions $opt
50+ * @return Response
51+ */
52+ public static function PUT ($ url , $ body , array $ headers = array (), $ opt = null )
2953 {
30- $ request = new Request ('PUT ' , $ url , $ headers , $ body );
54+ $ request = new Request ('PUT ' , $ url , $ headers , $ body, $ opt );
3155 return self ::sendRequest ($ request );
3256 }
3357
58+ /**
59+ * @param $url
60+ * @param array $fields
61+ * @param string $name
62+ * @param string $fileName
63+ * @param $fileBody
64+ * @param null $mimeType
65+ * @param array $headers
66+ * @param RequestOptions $opt
67+ * @return Response
68+ */
3469 public static function multipartPost (
3570 $ url ,
3671 $ fields ,
3772 $ name ,
3873 $ fileName ,
3974 $ fileBody ,
4075 $ mimeType = null ,
41- array $ headers = array ()
76+ $ headers = array (),
77+ $ opt = null
4278 ) {
4379 $ data = array ();
4480 $ mimeBoundary = md5 (microtime ());
@@ -62,10 +98,9 @@ public static function multipartPost(
6298 array_push ($ data , '' );
6399
64100 $ body = implode ("\r\n" , $ data );
65- // var_dump($data);exit;
66101 $ contentType = 'multipart/form-data; boundary= ' . $ mimeBoundary ;
67102 $ headers ['Content-Type ' ] = $ contentType ;
68- $ request = new Request ('POST ' , $ url , $ headers , $ body );
103+ $ request = new Request ('POST ' , $ url , $ headers , $ body, $ opt );
69104 return self ::sendRequest ($ request );
70105 }
71106
@@ -84,6 +119,10 @@ private static function userAgent()
84119 return $ ua ;
85120 }
86121
122+ /**
123+ * @param Request $request
124+ * @return Response
125+ */
87126 public static function sendRequest ($ request )
88127 {
89128 $ t1 = microtime (true );
@@ -98,6 +137,9 @@ public static function sendRequest($request)
98137 CURLOPT_CUSTOMREQUEST => $ request ->method ,
99138 CURLOPT_URL => $ request ->url ,
100139 );
140+ foreach ($ request ->opt ->getCurlOpt () as $ k => $ v ) {
141+ $ options [$ k ] = $ v ;
142+ }
101143 // Handle open_basedir & safe mode
102144 if (!ini_get ('safe_mode ' ) && !ini_get ('open_basedir ' )) {
103145 $ options [CURLOPT_FOLLOWLOCATION ] = true ;
0 commit comments