您好我在salesforce.com平台上的apex中写了一个基本的网络服务这里是顶级代码
@RestResource(urlMapping='/gggg')
global with sharing class HelloWorld{
@HttpPost
global static String doPut(){
RestRequest req=RestContext.request;
RestResponse res=RestContext.response;
String body1=req.requestBody.toString();
return body1;
}
}
我正在尝试使用android向此服务发送帖子请求 首先我授权它,然后获取访问令牌和刷新令牌,然后我再次获得access_token所以访问令牌没有问题。这是Android客户端的代码
URL url1=new URL("https://ap1.salesforce.com/services/apexrest/gggg");
HttpURLConnection connection=(HttpURLConnection) url1.openConnection();
connection.addRequestProperty("Authorization", "OAuth "+str);
connection.setRequestMethod("POST");
connection.setDoOutput(true);
String jsonbody="[{type:QwikScore_Question_Answer__c ,id:a03900000034MfA ,field:{id:Answer_Text__c,value:1.0}}]";
OutputStream st=connection.getOutputStream();
st.write(jsonbody.getBytes());
st.close();
connection.connect();
BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
String ss="";
String ss1="";
while((ss=reader.readLine())!=null){
ss1+=ss;
}
Log.i("Hello world",ss1);
在Logcat for Hello World的输出响应中我得到“”作为输出请指出为什么我没有得到正确的输出。我期待 [{type:QwikScore_Question_Answer__c,id:a03900000034MfA,field:{id:Answer_Text__c,value:1.0}}] 作为输出,因为我发送 st.write(jsonbody.getBytes()); jsonbody作为request.bease的主体帮我如何获得正确的输出??
答案 0 :(得分:0)
在您的请求中,您永远不会设置内容类型标头,因此服务器不知道如何解析有效负载。