-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathHttpPost.class.php
84 lines (75 loc) · 2.19 KB
/
HttpPost.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?
/*
* Copyright (C) 2013 Tony Gaitatzis
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Author: Tony Gaitatzis - http://www.linkedin.com/in/tonygaitatzis
* This code complements the online tutorial:
* http://20missionglass.tumblr.com/post/60787835108/programming-an-oauth2-client-app-in-php
*/
/**
* HttpPost allows us to construct and send a POST request to
* another web server
*
* @author Tony Gaitatzis
*/
class HttpPost {
public $url;
public $postString;
public $httpResponse;
public $ch;
/**
* Constructs an HttpPost object and initializes CURL
*
* @param url the url to be accessed
*/
public function __construct($url) {
$this->url = $url;
$this->ch = curl_init( $this->url );
curl_setopt( $this->ch, CURLOPT_FOLLOWLOCATION, false );
curl_setopt( $this->ch, CURLOPT_HEADER, false );
curl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, true );
}
/**
* shut down CURL before destroying the HttpPost object
*/
public function __destruct() {
curl_close($this->ch);
}
/**
* Convert an incoming associative array into a POST string
* for use with our HTTP POST
*
* @param params an associative array of data pairs
*/
public function setPostData($params) {
// http_build_query encodes URLs, which breaks POST data
$this->postString = rawurldecode(http_build_query( $params ));
curl_setopt( $this->ch, CURLOPT_POST, true );
curl_setopt ( $this->ch, CURLOPT_POSTFIELDS, $this->postString );
}
/**
* Make the POST request to the server
*/
public function send() {
$this->httpResponse = curl_exec( $this->ch );
}
/**
* Read the HTTP Response returned by the server
*/
public function getResponse() {
return $this->httpResponse;
}
}
?>