@@ -93,6 +93,10 @@ public function get($url_mixed, $data = array())
93
93
94
94
public function post ($ url , $ data = array ())
95
95
{
96
+ if (is_array ($ data ) && empty ($ data )) {
97
+ $ this ->setHeader ('Content-Length ' );
98
+ }
99
+
96
100
$ this ->setOpt (CURLOPT_URL , $ this ->buildURL ($ url ));
97
101
$ this ->setOpt (CURLOPT_CUSTOMREQUEST , 'POST ' );
98
102
$ this ->setOpt (CURLOPT_POST , true );
@@ -104,12 +108,17 @@ public function put($url, $data = array())
104
108
{
105
109
$ this ->setOpt (CURLOPT_URL , $ url );
106
110
$ this ->setOpt (CURLOPT_CUSTOMREQUEST , 'PUT ' );
107
- $ this ->setOpt (CURLOPT_POSTFIELDS , http_build_query ($ data ));
111
+ $ put_data = http_build_query ($ data );
112
+ if (empty ($ this ->options [CURLOPT_INFILE ]) && empty ($ this ->options [CURLOPT_INFILESIZE ])) {
113
+ $ this ->setHeader ('Content-Length ' , strlen ($ put_data ));
114
+ }
115
+ $ this ->setOpt (CURLOPT_POSTFIELDS , $ put_data );
108
116
return $ this ->exec ();
109
117
}
110
118
111
119
public function patch ($ url , $ data = array ())
112
120
{
121
+ $ this ->setHeader ('Content-Length ' );
113
122
$ this ->setOpt (CURLOPT_URL , $ this ->buildURL ($ url ));
114
123
$ this ->setOpt (CURLOPT_CUSTOMREQUEST , 'PATCH ' );
115
124
$ this ->setOpt (CURLOPT_POSTFIELDS , $ data );
@@ -118,6 +127,7 @@ public function patch($url, $data = array())
118
127
119
128
public function delete ($ url , $ data = array ())
120
129
{
130
+ $ this ->setHeader ('Content-Length ' );
121
131
$ this ->setOpt (CURLOPT_URL , $ this ->buildURL ($ url , $ data ));
122
132
$ this ->setOpt (CURLOPT_CUSTOMREQUEST , 'DELETE ' );
123
133
return $ this ->exec ();
@@ -133,6 +143,7 @@ public function head($url, $data = array())
133
143
134
144
public function options ($ url , $ data = array ())
135
145
{
146
+ $ this ->setHeader ('Content-Length ' );
136
147
$ this ->setOpt (CURLOPT_URL , $ this ->buildURL ($ url , $ data ));
137
148
$ this ->setOpt (CURLOPT_CUSTOMREQUEST , 'OPTIONS ' );
138
149
return $ this ->exec ();
@@ -144,7 +155,7 @@ public function setBasicAuthentication($username, $password)
144
155
$ this ->setOpt (CURLOPT_USERPWD , $ username . ': ' . $ password );
145
156
}
146
157
147
- public function setHeader ($ key , $ value )
158
+ public function setHeader ($ key , $ value = '' )
148
159
{
149
160
$ this ->headers [$ key ] = $ key . ': ' . $ value ;
150
161
$ this ->setOpt (CURLOPT_HTTPHEADER , array_values ($ this ->headers ));
0 commit comments