List of usage examples for com.google.gwt.xhr2.client RequestHeader RequestHeader
public RequestHeader(String name, String value)
From source file:org.rest.client.request.RequestHeadersParser.java
License:Apache License
/** * Parse HTTP headers string into list of {@link RequestHeader} * @param input headers string either from request as all headers response or from saved string * @return list of headers as {@link RequestHeader} *//*ww w. j av a 2 s . c o m*/ public static ArrayList<RequestHeader> stringToHeaders(String input) { ArrayList<RequestHeader> result = new ArrayList<RequestHeader>(); if (input == null || input.equals("")) { return result; } String[] headers = input.split("[\r\n]"); for (String h : headers) { String[] _tmp = h.split("[:|\r\n]", 2); if (_tmp.length > 0) { RequestHeader _h = new RequestHeader(_tmp[0].trim(), null); if (_tmp.length > 1) { _h.setValue(_tmp[1].trim()); } result.add(_h); } } return result; }
From source file:org.rest.client.RestClient.java
License:Apache License
/** * Prepare request data./*from w w w . j av a 2s .c om*/ * It set (if request include payload) content-type header according to user preferences * @param rp * @return */ private static RequestObject parseRequestParameters(RequestObject rp) { String headers = rp.getHeaders(); String method = rp.getMethod(); String encoding = rp.getEncoding(); boolean hasPayload = HttpMethodOptions.hasBody(method); ArrayList<FilesObject> files = null; if (hasPayload) { //handle content-type header for request with payload. //It can be either set via headers form or select input with predefined options. ArrayList<RequestHeader> headersList = RequestHeadersParser.stringToHeaders(headers); if (headers == null) { headersList = new ArrayList<RequestHeader>(); } int i = 0; for (RequestHeader item : headersList) { String key = item.getName(); if (key.toLowerCase().equals("content-type")) { encoding = item.getValue(); if (RestClient.isDebug()) { Log.debug("Found Content-Type header in headers list. Overwrite content-type value to " + encoding); } //Temporarily remove it from headers list headersList.remove(i); break; } i++; } files = rp.getFiles(); if (files != null && files.size() > 0) { encoding = null; } if (encoding != null) { headersList.add(new RequestHeader("Content-Type", encoding)); } headers = RequestHeadersParser.headersListToString(headersList); } RequestObject requestObject = RequestObject.createRequest(); requestObject.setHeaders(headers); requestObject.setMethod(method); String url = rp.getURL(); if (url.startsWith("/") && !isProdMode()) { // // DEV mode. // url = "http://127.0.0.1:8888" + url; } requestObject.setURL(url); if (hasPayload) { requestObject.setPayload(rp.getPayload()); requestObject.setEncoding(null); requestObject.setFiles(files); } return requestObject; }
From source file:org.rest.client.ui.desktop.widget.RequestHeadersWidget.java
License:Apache License
/** * Construct a new widget with headers editor. * //from w w w .j a v a2 s.co m */ public RequestHeadersWidget() { initWidget(GWT.<Binder>create(Binder.class).createAndBindUi(this)); loadCodeMirrorForHeaders(); // // Initialize Suggest Oracle for headers // HeadersStoreWebSql store = RestClient.getClientFactory().getHeadersStore(); suggestOracle = new HeadersSuggestOracle(store, "request"); headersRawInput.addKeyUpHandler(new KeyUpHandler() { @Override public void onKeyUp(KeyUpEvent event) { updateHeadersRawData(headersRawInput.getValue()); } }); headersRawInput.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { String headers = event.getValue(); if (!RequestHeadersParser.isValidHeaderString(headers)) { errorInfo.setVisible(true); } else { errorInfo.setVisible(false); } } }); rawTab.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { openRawTab(); } }); rawTab.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { HTML5Element tab = (HTML5Element) rawTab.getElement().cast(); if (!tab.getClassList().contains("inlineButtonChecked")) tab.getClassList().add("inlineButtonHover"); } }); rawTab.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { HTML5Element tab = (HTML5Element) rawTab.getElement().cast(); if (!tab.getClassList().contains("inlineButtonHover")) tab.getClassList().remove("inlineButtonHover"); } }); formTab.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { openFormTab(); } }); formTab.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { HTML5Element tab = (HTML5Element) formTab.getElement().cast(); if (!tab.getClassList().contains("inlineButtonChecked")) tab.getClassList().add("inlineButtonHover"); } }); formTab.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { HTML5Element tab = (HTML5Element) formTab.getElement().cast(); if (tab.getClassList().contains("inlineButtonHover")) tab.getClassList().remove("inlineButtonHover"); } }); BoundaryChangeEvent.register(RestClient.getClientFactory().getEventBus(), new BoundaryChangeEvent.Handler() { @Override public void onChange(String boundary) { ArrayList<RequestHeader> list = RequestHeadersParser.stringToHeaders(headersData); boolean found = false; for (RequestHeader header : list) { if (header.getName().toLowerCase().equals("content-type")) { header.setValue("multipart/form-data; boundary=" + boundary); found = true; break; } } if (!found) { list.add( new RequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary)); } updateHeadersRawData(RequestHeadersParser.headersListToString(list)); headersRawInput.setValue(headersData, true); if (currentTab.equals(TABS.FORM)) { updateForm(); } } }); }
From source file:org.rest.client.ui.desktop.widget.RequestHeadersWidget.java
License:Apache License
/** * Update raw data after change in for editor. */// w ww . ja v a2s .c om void updateRaw() { updateHeadersRawData(""); ArrayList<RequestHeader> list = new ArrayList<RequestHeader>(); for (HeadersFormRow row : rows) { list.add(new RequestHeader(row.nameBox.getValue(), row.valueBox.getValue())); } updateHeadersRawData(RequestHeadersParser.headersListToString(list)); headersRawInput.setValue(headersData, true); }