2
服务器我正在使用retrofit在android中的一个POST请求我已经在Node.js.中创建的服务器。我已经在GET请求工作,它工作正常,但是当我提出发布请求时,我无法获取数据。
如何使用retrofit进行POST请求在android
我的代码如下: DataService.java
public class DataService extends Service{
private final class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
try {
computeDistance(startLocation);
} catch (Exception e) {
e.printStackTrace();
}
stopSelf(msg.arg1);
}
public void computeDistance(String endLocation){
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(Constants.Http.URL_BASE)
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
ApiService cityService = restAdapter.create(ApiService.class);
cityService.updateCityData();
}
}
}
我定义的接口,如:
ApiService.java
public interface ApiService {
@POST("/city/update")
public String updateCityData();
}
我Node.js的文件就像:
function updateDBData(req, res, next) {
console.log('Entered into the UpdateDBDATa');
var sapi = {"data": "false"};
res.send(200, sapi).end();
}
/**-------- creating a server --------**/
var server = restify.createServer({name: 'crunchbase'});
server.get('/city/:name', updateDBData);
/**------- server listening port -------**/
server.listen(appContext.port, function() {
console.log('%s listening at %s', server.name, server.url);
});
当我调用的Node.js服务器 http://www.api.com:8084/search/update 我正在印刷控制台上的消息。但是当我通过机器人进行改装要求我收到错误,如
D/Retrofit﹕ <--- HTTP 405 http://www.api.com:8084/city/update (439ms)<br>
D/Retrofit﹕ : HTTP/1.1 405 Method Not Allowed<br>
D/Retrofit﹕ Access-Control-Allow-Headers: Accept, Accept-Version, Content-Length, Content-MD5 , Content-Type, Date, X-Api-Version<br>
D/Retrofit﹕ Access-Control-Allow-Methods: GET<br>
D/Retrofit﹕ Access-Control-Allow-Origin: *<br>
D/Retrofit﹕ {"code":"BadMethod","message":"/city/update does not support POST"}
D/Retrofit﹕ <--- END HTTP (67-byte body)
我无法弄清楚什么是错误以及如何解决它。
我把事情后支持..但我得到的错误.. d /改造:{ “代码”: “BadMethod”,“message”:“/ city/update不支持POST”} – anand 2014-09-25 07:02:40
这绝对是服务器端问题,请检查restify API的文档:http://mcavage.me/node-restify/ – epint 2014-09-25 07:12:43
@an并且您重新启动更改后的服务器? – 2016-03-01 12:15:05