私はいくつかのアプリケーションを開発しており、それらを Restful WebService に接続したいと考えています。そのために、私はこのクラスを書きました:
public class WebServiceClient {
public void postService() {
HttpClient client = new DefaultHttpClient();
String param1 = "ola\n5\nwww.youtube.com\n1000-01-01_00:00:00.0\n1223";
String url = "http://localhost:8080/pt.Android.Project.WebService/rest/project";
HttpPost post = new HttpPost(url);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("param1", param1));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void getService() {
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(
"http://localhost:8080/pt.Android.Project.WebService/rest/project?id=3");
HttpResponse response = client.execute(request);
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
getService メソッドは正常に動作しますが、Web サービスに投稿できません。私のサービスのインターフェースは次のとおりです。
@Path("/project")
public WebService {
TagAccessController ctrl;
public ProjectWebService() {
ctrl = new TagAccessController();
}
@GET
@Produces(MediaType.TEXT_HTML)
public String getTag(@QueryParam("id") String id) {
// int id = 1;
String result = ctrl.getTagContent(id);
if (result != null) {
String[] info = result.split("\\|");
// String [] info = { "funciona","hoje"};
return "<html> " + "<title>" + "Informação" + "</title>"
+ "<body><h1>" + info[1] + "</h1>" + "<p>" + info[0]
+ "</p>" + "<p>" + " Site: " + info[2] + "</p>" + "</body>"
+ "</html> ";
} else {
return "<html> " + "<title>" + "Informação" + "</title>"
+ "<body><h1>" + "Sem dados a apresentar!" + "</body></h1>"
+ "</html> ";
}
}
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getTagText(@QueryParam("id") String id) {
//int id = 1;
return ctrl.getTagContent(id);
}
@POST
@Path("/create/{param1}")
@Produces(MediaType.TEXT_PLAIN)
public void putTag(@PathParam("param1") String param1{
//System.out.println(param1);
ctrl.saveTag(param1);
}
}
問題は、テストクラスのみで投稿しようとすると、システムから次のメッセージが表示されることです: HTTP Status 405 - Method Not Allowed -------------------- -------------------------------------------------- ---------- type ステータス レポート メッセージ Method Not Allowed 説明 指定された HTTP メソッドは、要求されたリソースに対して許可されていません (Method Not Allowed)。
誰かがこれで私を助けることができますか?
敬具、リタ