wie man mehrere query-parameter in REST-web-service
Tun, wer weiß, wie man mehrere query-parameter in REST-web-Dienst?
Ich habe schreiben mit java.Mein curl-Probe ist wie folgt:
curl -X PUT http://localhost:8080/project/resources/user/directory/sub-directory?name=shareuser&type=Read -v
Mein Programm ist :
@PUT
@Path("{user}/{directory:.+}")
public Response doshare(@PathParam("user")String name,
@PathParam("directory")String dir,
@QueryParam("name")String sharename,
@QueryParam("type")String type){
mongoDAOImpl impl=new mongoDAOImpl();
Mongo mongo=impl.getConnection("127.0.0.1","27017");
DB db=impl.getDataBase(mongo,"public");
DBCollection coll=impl.getColl(db,name);
DBCollection coll2=impl.getColl(db,"sharedb");
shareDTO sharedto=new shareDTO();
String authority=type.toLowerCase();
if(authority.equals("rd")){
sharedto.setAuthority("4");
}else if(authority.equals("rw")){
sharedto.setAuthority("12");
}
sharedto.setTargetuser(sharename);
sharedto.setRealURI("/home/public/"+name+"/"+dir);
sharedto.setIdentifier(name);
sharedto.setParentURI("/home/public/"+sharename);
boolean bool = false;
sharefun=new sharefunction();
if(sharefun.checksubfoldershared(coll, coll2, sharedto)){
bool=sharefun.sharefiles(coll, coll2, sharedto);
}else{
System.out.println("Error");
}
//...
Aber bekomme ich nur den Namen der Abfrage-parameter.Wie man oder wie man in den curl-Befehl, um sich alle query-parameter?
SETZEN und Abfragen params? Das fühlt sich nicht schön.
Jede Anregung, um es zu beheben? Ich Schreibe web-service für Fenster-Basis-Anwendung. Ich aldy haben web-Anwendung.
Siehe meine Antwort unten.
Jede Anregung, um es zu beheben? Ich Schreibe web-service für Fenster-Basis-Anwendung. Ich aldy haben web-Anwendung.
Siehe meine Antwort unten.
InformationsquelleAutor sudo | 2011-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code ist in Ordnung - das problem ist mit die Weise, die Sie aufrufen curl. Bei der übergabe einer URL, curl, enthält ein '&', haben Sie, um setzen Sie Anführungszeichen um die URL. Andernfalls wird die shell interpretiert das Zeug nach dem "& " als separater Befehl.
EDIT: Mein text ist immer verwurschtelt, wenn ich behaupte, dass das als Kommentar. Hier ist, was Sie tun müssen:
Nein, Lesen was ich geschrieben habe wieder. Setzen Sie Anführungszeichen um die URL. So: curl 'example.com/?a=A&b=B'
hi mike, hab die gleiche Fehlermeldung Http 500. ich schrieb wie : curl -X PUT 'localhost:8080?a=A&b=B'
Eine 500-Fehlermeldung, ist etwas völlig anderes als das problem ursprünglich gemeldet, so möchten Sie vielleicht zu Beginn eine andere Frage. Auch ein 500 bedeutet nur, dass etwas schief gelaufen bei der Verarbeitung von Anfragen, so könnte es alles sein. Es sollten Meldungen im server log wenn der Fehler Auftritt - nehmen Sie einen Blick auf diese ersten.
InformationsquelleAutor Mike Baranczak
Könnten Sie versuchen, die Behandlung dieses alle als multipart-upload (server-side-Angaben sind nicht standardisiert und Sie hat nicht gesagt, was framework, die Sie verwenden, so kann ich nicht mehr Hinweise), aber ich Frage mich, warum sind Sie mit der Benutzer-und Zugriffsrechte (via alle Parameter) in den ersten Platz. Sicherlich wären Sie besser dran, die sich die Benutzer zu lagern, da durch die Inspektion des Benutzers login-Daten ein und verwenden einen Standard-Satz von Berechtigungen, die Sie später ändern können? Fast so Billig, und enorm einfacher.
Sie Wette Sie sind mit einem Rahmen! Etwas ist die Verarbeitung dieser Anmerkungen, um Sie in code, der Haken alles zusammen. Da bist du mit Netbeans, ich Schätze, du bist wahrscheinlich mit Trikot, auch wenn Sie es nicht wissen. Multipart-handling in Jersey ist eine Erweiterung (jersey-multipart).
InformationsquelleAutor Donal Fellows
Haben Sie versucht, mithilfe der option-d? z.B.
InformationsquelleAutor Suresh Kumar