I am trying to execute an https post request using curl. When I execute this request, I get no response and no error or exception. Help or any clue about what is going on here is appreciated. Thanks.
Curl command line format:
curl -X POST \ -F ' image=@filename.png ;type=image/png' \ -F ' svgz=@filename.svgz ;type=image/svg+xml' \ -F 'json={ "text" : "Hello world!", "templateid" : "0010", "timestamp" : "1342683312", "location" : [ 37.7793, -122.4192 ], "facebook" : { "id": "738124695", "access_token": "<VALID_USER_FACEBOOK_TOKEN_WITH_PUBLISH_ACTIONS_PERMISSIONS", "expiration_date": "1342683312" } };type=application/json' \ https://sample.com/api/posts
Facebook post code:
public static void uploadToFB() { HttpClient client = getNewHttpClient(); HttpPost httpost = new HttpPost("https://sample.com/api/posts"); httpost.addHeader("image", "filename.png"); httpost.addHeader("svgz", "filename.svgz"); httpost.addHeader("type", "application/json"); httpost.setHeader("Content-type", "application/json"); JSONObject data = new JSONObject(); JSONObject facebook = new JSONObject(); JSONArray location = new JSONArray(); HttpResponse response = null; try { data.put("text","Hello world!"); data.put("templateid","0010"); data.put("timestamp","2012-07-08 09:00:45.312195368+00:00"); location.put(37.7793); location.put( -122.4192); data.put("location", location); facebook.put("id", "738124695"); facebook.put("access_token", "AAADdF92joPABAKmRojBuXZAZAP"+ "qF8ZAxM2bM"+ "UnIErUSYZB85y5vIHAZDZD"); facebook.put("expiration_date", "2013-07-07T 22:00:00Z"); data.put("facebook", facebook); System.out.println(" ---- data ----- "+data); StringEntity stringEntity = new StringEntity(data.toString()); httpost.setEntity(stringEntity); try { response = client.execute(httpost); System.out.println(" --- response --- "+response); HttpEntity entity = response.getEntity();
It was an unreliable network, so for this I did something like below, as in this link.
private static HttpClient getNewHttpClient() { try { KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); trustStore.load(null, null); SSLSocketFactory sf = new MySSLSocketFactory(trustStore); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); registry.register(new Scheme("https", sf, 443)); ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry); return new DefaultHttpClient(ccm, params); } catch (Exception e) { return new DefaultHttpClient(); } }