private void checkHeaders(HTTPMethod method) { if (debugHeaders) { System.out.println("\nOpenConnection Headers for " + method.getPath()); System.out.println("Status Line: " + method.getStatusLine()); } Header[] responseHeaders = method.getResponseHeaders(); for (int i1 = 0; i1 < responseHeaders.length; i1++) { Header responseHeader = responseHeaders[i1]; if (debugHeaders) System.out.print(" " + responseHeader); String key = responseHeader.getName(); String value = responseHeader.getValue(); if (key.equals("Last-Modified")) { lastModified = value; if (debugHeaders) System.out.println(" **found lastModified = " + lastModified); } else if (key.equals("X-Last-Extended")) { lastExtended = value; if (debugHeaders) System.out.println(" **found lastExtended = " + lastExtended); } else if (key.equals("X-Last-Modified-Invalid")) { lastModifiedInvalid = value; if (debugHeaders) System.out.println(" **found lastModifiedInvalid = " + lastModifiedInvalid); } } if (debugHeaders) System.out.println("OpenConnection Headers for " + method.getPath()); Cookie[] cookies = _session.getCookies(); if (cookies.length > 0) { if (debugHeaders) System.out.println("Cookies= "); for (int i = 0; i < cookies.length; i++) { Cookie cooky = cookies[i]; if (debugHeaders) System.out.println(" " + cooky); if (cooky.getName().equalsIgnoreCase("jsessionid")) hasSession = true; } } }
/** * * a simple request WILL NOT process any data received, you'll have to do that. * * @return */ public HttpURLConnection simpleRequest(Skype usr) { try { URL obj = new URL(url); con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod( (type == RequestType.GET ? "GET" : (type == RequestType.POST ? "POST" : (type == RequestType.PUT ? "PUT" : (type == RequestType.DELETE ? "DELETE" : "OPTIONS"))))); con.setRequestProperty( "Content-Type", isForm ? "application/x-www-form-urlencoded" : "application/json"); con.setRequestProperty("Content-Length", Integer.toString(data.getBytes().length)); // con.setRequestProperty("User-Agent", "JavaSkypeProject"); con.setRequestProperty("Cookie", api.cookies); con.setDoOutput(true); addLogin(usr); for (Header s : headers) { con.addRequestProperty(s.getType(), s.getData()); } if (!(data.getBytes().length == 0)) { DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.write(data.getBytes()); wr.flush(); wr.close(); } return con; } catch (Exception e) { System.out.println("================================================"); System.out.println("========Unable to request the skype api========"); System.out.println("================================================"); return null; } }
public String makeRequest(Skype usr) { try { URL obj = new URL(url); con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod( (type == RequestType.GET ? "GET" : (type == RequestType.POST ? "POST" : (type == RequestType.PUT ? "PUT" : (type == RequestType.DELETE ? "DELETE" : "OPTIONS"))))); con.setRequestProperty( "Content-Type", isForm ? "application/x-www-form-urlencoded" : (file ? "application/octet-stream" : "application/json; charset=utf-8")); con.setRequestProperty("Content-Length", Integer.toString(data.getBytes().length)); con.setRequestProperty("User-Agent", "0/7.7.0.103// libhttpX.X"); con.setRequestProperty("Cookie", api.cookies); con.setDoOutput(true); if (sendLoginHeaders) addLogin(usr); for (Header s : headers) { con.addRequestProperty(s.getType(), s.getData()); } if (!(data.getBytes().length == 0)) { DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.write(data.getBytes()); wr.flush(); wr.close(); } code = con.getResponseCode(); if (code == 200 || code == 201) { BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); return response.toString() == null ? "" : response.toString(); } else if (code == 401) { System.out.println("\n\nBad login..."); System.out.println( this.url + " returned 401. \nHave you been running jSkype for more than 2 days?\nWithin 4 seconds the ping-er should relog you in.\n\n"); return "---"; } else if (code == 204) { return ""; } else { if (code == 404 && url.toLowerCase().contains("endpoint")) { System.out.println("Lost connection to skype.\nReloggin!"); api.getSkype().relog(); api.getPoller().prepare(); } if (api.isDebugMode()) { if (!api.isStfuMode()) { // GetProfile will handle the debugging info if (url.equals("https://api.skype.com/users/self/contacts/profiles")) return null; // Debug info System.out.println( "Error contacting skype\nUrl: " + url + "\nCode: " + code + "\nData: " + data); for (Header header : headers) { System.out.println(header.getType() + ": " + header.getData()); } } } return null; } } catch (UnknownHostException | SocketException e) { return null; } catch (Exception e) { if (api.displayInfoMessages()) { System.out.println("================================================"); System.out.println("========Unable to request the skype api========"); System.out.println("================================================"); System.out.println("Error: " + e.getMessage()); System.out.println("URL: " + url); } e.printStackTrace(); return null; } }
/** * Open a connection to the DODS server. * * @param urlString the URL to open. * @param command execute this command on the input stream * @throws IOException if an IO exception occurred. * @throws DAP2Exception if the DODS server returned an error. * @throws ParseException is cant parse the return */ private void openConnection(String urlString, Command command) throws IOException, DAP2Exception, ParseException { HTTPMethod method = null; InputStream is = null; initSession(); try { method = _session.newMethodGet(urlString); if (acceptCompress) method.setRequestHeader("Accept-Encoding", "deflate,gzip"); // enable sessions if (allowSessions) method.setRequestHeader("X-Accept-Session", "true"); // Execute the method. int statusCode = method.execute(); // debug // if (debugHeaders) ucar.nc2.util.net.HttpClientManager.showHttpRequestInfo(f, method); if (statusCode == HTTPSession.SC_NOT_FOUND) { throw new DAP2Exception(DAP2Exception.NO_SUCH_FILE, method.getStatusText()); } if (statusCode == HTTPSession.SC_UNAUTHORIZED) { throw new InvalidCredentialsException(method.getStatusText()); } if (statusCode != HTTPSession.SC_OK) { throw new DAP2Exception( "Method failed:" + method.getStatusText() + " on URL= " + urlString); } // Get the response body. is = method.getResponseAsStream(); // check if its an error Header header = method.getResponseHeader("Content-Description"); if (header != null && (header.getValue().equals("dods-error") || header.getValue().equals("dods_error"))) { // create server exception object DAP2Exception ds = new DAP2Exception(); is = dumpStream(is); // parse the Error object from stream and throw it ds.parse(is); throw ds; } ver = new ServerVersion(method); checkHeaders(method); // check for deflator Header h = method.getResponseHeader("content-encoding"); String encoding = (h == null) ? null : h.getValue(); // if (encoding != null) System.out.println("encoding= " + encoding); if (encoding != null && encoding.equals("deflate")) { is = new BufferedInputStream(new InflaterInputStream(is), 1000); } else if (encoding != null && encoding.equals("gzip")) { is = new BufferedInputStream(new GZIPInputStream(is), 1000); } command.process(is); } catch (Exception e) { e.printStackTrace(); throw new DAP2Exception(e); } finally { // Release the connection. if (method != null) method.close(); } }