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
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-verbindungen
ist 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

Schreibe einen Kommentar