1

I cannot figure out why this function is not POSTing, any ideas? Thanks! I am trying to send JSON data to a server, and I am getting no error or feedback, the var_dump($response) just gives me 'null'.

 function postToDatabase($data, $thingName){ $content = json_encode($data); $curl = curl_init('http://someurl.com/thing'. $thingName .'/otherthing'); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //curl error SSL certificate problem, verify that the CA cert is OK $result = curl_exec($curl); $response = json_decode($result); var_dump($response); curl_close($curl); } /* post to url */ postToDatabase($someData, $thingName); my JSON $content: { "email": null, "stripeToken": "aidfat9s8d7ftas7df9asjd7fy0aksd", "stripeShippingName": "A Test User", "stripeShippingAddressLine1": "1we2e12", "stripeShippingAddressZip": "62650", "stripeShippingAddressState": "IL", "stripeShippingAddressCity": "Jacksonville", "stripeShippingAddressCountry": "United States", "products": [ { "productId": "897349864", "sizeId": "4", "colorId": "6", "units": 1 } ] } 
1
  • 1
    we don't see server code or API description here Commented Apr 17, 2014 at 19:45

2 Answers 2

1

your issue could be because of error happening in curl or while decoding json string using json_decode() I would recommend you to consider implementing more error handling, using related error functions, something like:

$result = curl_exec($curl); if($result == false){ var_dump(curl_error($curl)); // https://www.php.net/manual/en/function.curl-error.php } $response = json_decode($result); if ($resonse == null){ var_dump(json_last_error()); } var_dump($response); curl_close($curl); 

Here is the CURL error's list : https://www.php.net/manual/en/function.curl-errno.php

<?php $error_codes=array( [1] => 'CURLE_UNSUPPORTED_PROTOCOL', [2] => 'CURLE_FAILED_INIT', [3] => 'CURLE_URL_MALFORMAT', [4] => 'CURLE_URL_MALFORMAT_USER', [5] => 'CURLE_COULDNT_RESOLVE_PROXY', [6] => 'CURLE_COULDNT_RESOLVE_HOST', [7] => 'CURLE_COULDNT_CONNECT', [8] => 'CURLE_FTP_WEIRD_SERVER_REPLY', [9] => 'CURLE_REMOTE_ACCESS_DENIED', [11] => 'CURLE_FTP_WEIRD_PASS_REPLY', [13] => 'CURLE_FTP_WEIRD_PASV_REPLY', [14]=>'CURLE_FTP_WEIRD_227_FORMAT', [15] => 'CURLE_FTP_CANT_GET_HOST', [17] => 'CURLE_FTP_COULDNT_SET_TYPE', [18] => 'CURLE_PARTIAL_FILE', [19] => 'CURLE_FTP_COULDNT_RETR_FILE', [21] => 'CURLE_QUOTE_ERROR', [22] => 'CURLE_HTTP_RETURNED_ERROR', [23] => 'CURLE_WRITE_ERROR', [25] => 'CURLE_UPLOAD_FAILED', [26] => 'CURLE_READ_ERROR', [27] => 'CURLE_OUT_OF_MEMORY', [28] => 'CURLE_OPERATION_TIMEDOUT', [30] => 'CURLE_FTP_PORT_FAILED', [31] => 'CURLE_FTP_COULDNT_USE_REST', [33] => 'CURLE_RANGE_ERROR', [34] => 'CURLE_HTTP_POST_ERROR', [35] => 'CURLE_SSL_CONNECT_ERROR', [36] => 'CURLE_BAD_DOWNLOAD_RESUME', [37] => 'CURLE_FILE_COULDNT_READ_FILE', [38] => 'CURLE_LDAP_CANNOT_BIND', [39] => 'CURLE_LDAP_SEARCH_FAILED', [41] => 'CURLE_FUNCTION_NOT_FOUND', [42] => 'CURLE_ABORTED_BY_CALLBACK', [43] => 'CURLE_BAD_FUNCTION_ARGUMENT', [45] => 'CURLE_INTERFACE_FAILED', [47] => 'CURLE_TOO_MANY_REDIRECTS', [48] => 'CURLE_UNKNOWN_TELNET_OPTION', [49] => 'CURLE_TELNET_OPTION_SYNTAX', [51] => 'CURLE_PEER_FAILED_VERIFICATION', [52] => 'CURLE_GOT_NOTHING', [53] => 'CURLE_SSL_ENGINE_NOTFOUND', [54] => 'CURLE_SSL_ENGINE_SETFAILED', [55] => 'CURLE_SEND_ERROR', [56] => 'CURLE_RECV_ERROR', [58] => 'CURLE_SSL_CERTPROBLEM', [59] => 'CURLE_SSL_CIPHER', [60] => 'CURLE_SSL_CACERT', [61] => 'CURLE_BAD_CONTENT_ENCODING', [62] => 'CURLE_LDAP_INVALID_URL', [63] => 'CURLE_FILESIZE_EXCEEDED', [64] => 'CURLE_USE_SSL_FAILED', [65] => 'CURLE_SEND_FAIL_REWIND', [66] => 'CURLE_SSL_ENGINE_INITFAILED', [67] => 'CURLE_LOGIN_DENIED', [68] => 'CURLE_TFTP_NOTFOUND', [69] => 'CURLE_TFTP_PERM', [70] => 'CURLE_REMOTE_DISK_FULL', [71] => 'CURLE_TFTP_ILLEGAL', [72] => 'CURLE_TFTP_UNKNOWNID', [73] => 'CURLE_REMOTE_FILE_EXISTS', [74] => 'CURLE_TFTP_NOSUCHUSER', [75] => 'CURLE_CONV_FAILED', [76] => 'CURLE_CONV_REQD', [77] => 'CURLE_SSL_CACERT_BADFILE', [78] => 'CURLE_REMOTE_FILE_NOT_FOUND', [79] => 'CURLE_SSH', [80] => 'CURLE_SSL_SHUTDOWN_FAILED', [81] => 'CURLE_AGAIN', [82] => 'CURLE_SSL_CRL_BADFILE', [83] => 'CURLE_SSL_ISSUER_ERROR', [84] => 'CURLE_FTP_PRET_FAILED', [84] => 'CURLE_FTP_PRET_FAILED', [85] => 'CURLE_RTSP_CSEQ_ERROR', [86] => 'CURLE_RTSP_SESSION_ERROR', [87] => 'CURLE_FTP_BAD_FILE_LIST', [88] => 'CURLE_CHUNK_FAILED'); ?> 
Sign up to request clarification or add additional context in comments.

2 Comments

I added this error handling, and I get back 'int 1'
make sure your URL and protocol are valid (http or https) here you can read about error code 1 in curl : curl.haxx.se/libcurl/c/libcurl-errors.html
1

If you are getting something in $result, but not in $response, could it be your JSON is malformed? Try using: http://www.php.net/manual/en/function.json-last-error.php

or you could use http://jsonlint.org/ to check the raw $result;

2 Comments

I did a print_r() on my $content variable (the JSON) and tried it out on jsonlint.org and it came back valid, I added the JSON to my question if that helps.
I'm talking about what's coming back - can you print out your $result variable?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.