我遇到来自curl
和浏览器的POST请求的问题。
package name.christianson.mike.resource;
import com.google.common.base.Optional;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import name.christianson.mike.model.Time;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
@Path("/time")
//@Produces(MediaType.APPLICATION_JSON)
public class TimeResource {
@GET
public Time getTime(@QueryParam("timezone") Optional<String> timezone) {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//TimeZone timeZone = TimeZone.getTimeZone(timezone.or(defaultTimezone));
//formatter.setTimeZone(timeZone);
String formatted = formatter.format(new Date());
return new Time(formatted);
}
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public String getTrackInJSON() {
System.out.println("fdfsf");
//Track track = new Track();
//track.setTitle("Enter Sandman");
//track.setSinger("Metallica");
return "HI";
}
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String createTrackInJSON(@FormParam("param1") String param1 ) {
//String result = "Track saved : " + track;
System.out.println(param1);
return param1+"fdf";
}
}
在dropwizard中,我的jar正在运行...我需要请求发送请求..我尝试使用浏览器表单提交,但它也没有用..
所以我尝试了卷曲,但它也没有用。
curl -X POST -d "param1=dds" http://localhost:9179/time/post
我的yml文件
defaultTimezone: UTC
server:
applicationConnectors:
- type: http
port: 9179
outputBufferSize: 32KiB
idleTimeout: 30 seconds
minBufferPoolSize: 64 bytes
bufferPoolIncrement: 1KiB
maxBufferPoolSize: 64KiB
acceptorThreads: 1
selectorThreads: 2
acceptQueueSize: 1024
reuseAddress: true
soLingerTime: 600s
adminConnectors:
- type: http
port: 9180
答案 0 :(得分:0)
那是因为你没有在你的命令中指定内容类型
尝试调用此命令:
curl -X POST -d 'param1=dds' -H "Content-Type: application/x-www-form-urlencoded" http://localhost:9179/time/post