So senden Sie ein POST-request über RestTemplate mit benutzerdefinierten parameter im header
Brauche ich, um zu senden-post-Anforderung mit benutzerdefinierten parameter("data" mit Pfad), und setzen Sie content-type text/plain. Ich blickte durch eine Tonne ähnliche Frage gestellt, aber keine Lösungen gepostet geholfen.
Sollte die Methode Liste der Dateien aus diesem Verzeichnis.
mein code ist
public List<FileWrapper> getFileList() {
MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
map.add("data", "/public/");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_PLAIN);
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(
map, headers);
String url = "http://192.168.1.51:8080/pi/FilesServlet";
restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
String response = restTemplate
.postForObject(url, request, String.class);
List<FileWrapper> list = new ArrayList<>();
for (String part : response.split("\\|")) {
System.out.println("part " + part);
list.add(new FileWrapper(part));
}
return list;
}
Hier arbeiten-code-Entsprechung in javascript geschrieben:
function getFileList(direction){
$("div.file-list").html("<center><progress></progress></center>");
$.ajax({
url: "http://192.168.1.51:8080/pi/FilesServlet",
type: "POST",
data: direction ,
contentType: "text/plain"
})
Der parameter nicht Hinzugefügt, die die Anfrage zurückgibt leere Zeichenfolge, was bedeutet der Pfad ist nicht gültig. Die erwartete Antwort ist file_name*file_size|file_name*file_size ...
Vielen Dank im Voraus.
UrlEncode $Daten-Feld-Wert, und fügen Sie es an seinen Platz in die url-Zeichenfolge
dann schreiben Sie es auf den Ausgabestrom auf die Verbindung, oder setzen Sie es in die "Einheit", was je nach client verwendet wird.
Das Ding ist, ich möchte vermeiden, mit
ist die Eingabe von Daten in AJAX-request in diesem format?
data
ist nicht Teil des url, das ist POST
Methode data
Wert ist ein argument.dann schreiben Sie es auf den Ausgabestrom auf die Verbindung, oder setzen Sie es in die "Einheit", was je nach client verwendet wird.
Das Ding ist, ich möchte vermeiden, mit
HttpUrlConnection
und Verwendung von Spring RestTemplate
stattdessen Griff-verbindungenist die Eingabe von Daten in AJAX-request in diesem format?
{'data':'/public/'}
Können Sie die Druckrichtung in der JS-code und poste das wieder hier?InformationsquelleAutor Asalas77 | 2015-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Diskussion in den Kommentaren ist es ziemlich klar, dass Ihr Wunsch-Objekt nicht korrekt ist. Wenn Sie auf der Durchreise sind, einen einfachen string mit Ordner Namen, dann brauchen Sie nicht eine
MultiValueMap
. Versuchen Sie einfach, senden eine Zeichenfolge,Haben Sie versucht, die content-type-header auf
MediaType.MULTIPART_FORM_DATA
Wie bekomme ich diese Daten in dem server-Ende???
InformationsquelleAutor nilesh