Wie kann ich Formular-Daten als JSON-format
Posting argument Daten aus meinem Formular funktioniert perfekt, aber ich post müssen die gleichen Informationen mithilfe von JSON. Wie kann das getan werden.
Meine form sieht wie folgt aus.
<form enctype="multipart/form-data" method="post" action="http://myrestfulservice.com/">
<input type="text" name="name">
<input type="text" name="email">
<textarea name="about" rows="3"></textarea>
<input name="file" type="file">
</form>
Und mein JSON-string sieht wie folgt aus.
{
"name":"Josh U",
"email":"[email protected]",
"about":"Get rich programming or die tryna be something else",
"file":"@/home/josh/image.png"
}
Ich habe versucht mit JSON-string, aber ich bekomme die folgende
Exception in thread "main" java.lang.RuntimeException: Failed : HTTP error code : 500
at com.ijoshluisaac.restful.client.RESTFulClientPostUsingJavaHTTPClientLibrary.main(RESTFulClientPostUsingJavaHTTPClientLibrary.java:35)
Meine JAVA-codes sieht wie folgt aus
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class RESTFulClientPostUsingJavaHTTPClientLibrary {
//JSON content to post
private static final String JSON_OBJECT = "{\"name\":\"Josh U\",\"email\":\"[email protected]\",\"about\":\"Get rich programming or die tryna be something else\",\"file\":\"/home/josh/image.png\"}";
//Web services URLs
private static final String URL_SR = "http://myrestfulservice.com/";
public static void main(String[] args) {
try {
URL url = new URL(URL_SR);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
OutputStream os = conn.getOutputStream();
os.write(JSON_OBJECT.getBytes());
os.flush();
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
System.out.println("Successfully Executed RESTFul POST .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- Ich denke, dass dies wird Ihnen helfen, (stackoverflow.com/questions/15481382/...)
- Warum stellst du JSON an den server, wenn es geht eindeutig davon aus url-codierte Formulardaten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie haben zu tun 2 Schritte:
Müssen Sie nur fügen Sie mehr Funktionalität hinzu jQuery serializeArray, um uns unsere benötigte JS-Objekt:
Dann verwenden
JSON.stringify
Funktion zu konvertieren, JS-Objekt in JSON-format. Finden Sie mehr info hierGehen jquery (wie es bietet viele out-of-box-Funktionen wie serilaize der form Parameter in json)und folgenden code verwenden,
sehen http://api.jquery.com/serializeArray/