Android Retrofit请求服务器返回字符串(非JSON)
来源:互联网 发布:淘宝绽放茉莉恶心 编辑:程序博客网 时间:2024/06/05 21:57
今天,笔者在学习微软语音识别认知服务的开发中遇到了一个问题,那就是微软 cognitive token (获取token的api: https://api.cognitive.microsoft.com/sts/v1.0/issueToken)时返回的是字符串,而不是json格式,笔者的开发环境是android studio 2.3.3, 使用Retrofit来作为网络请求库。
之后,笔者查阅了网上的有关教程,无外乎都是请求json数据,使用addConverterFactory(GsonConverterFactory.create())来作为转化器,如果业务需求是请求字符串,而不是json数据格式呢,继续使用这个转换器就会产生错误。
那么,如何使用Retrofit请求服务器返回一段字符串呢?
首先,来到官方文档查阅:http://square.github.io/retrofit/ 找到如下:
可见,官方已经提供了一个字符串的转换器,那么接下来把它导入项目使用就可以了,步骤如下:
①添加gradle依赖:
compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'compile 'com.squareup.retrofit2:converter-scalars:2.0.0' //导入scalars包
②创建用于描述网络请求的接口:
public interface POSTToken_Interface { @POST("sts/v1.0/issueToken") Call<String> getCall( @Query("Subscription-Key") String subscriptKey ); }③开始请求:
实现功能:获取微软cognitive token
实现方案:采用
Post
方法对https://api.cognitive.microsoft.com/sts/v1.0/issueToken
发送网络请求api的数据格式:
请求参数:
Subscription-Key: 在Azure上订阅某接口的订阅号
返回格式:String: 字符串
具体实现如下:public class POSTToken extends AppCompatActivity { @Override public void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); System.out.println("start"); request(); } public void request(){ //创建Retrofit对象 Retrofit retrofit=new Retrofit.Builder() .baseUrl("https://api.cognitive.microsoft.com/") .addConverterFactory(ScalarsConverterFactory.create()) //设置ScalarsConverter .build(); // 创建 网络请求接口 的实例 POSTToken_Interface request=retrofit.create(POSTToken_Interface.class); //对 发送请求 进行封装 Call<String> call=request.getCall("c8f279f104024625bfaa155f33d8d1b5"); //此key将过期 //发送网络请求(异步) call.enqueue( new Callback<String>() { //请求成功时回调 @Override public void onResponse(Call<String> call, Response<String> response) { System.out.println(response.body()); } //请求失败时回调 @Override public void onFailure(Call<String> call, Throwable t) { System.out.println("连接失败"); // t.printStackTrace(); } } ); }}————————————————————————————————————————————————————————————————————————————————————————————看看运行结果:可以看到成功获得了字符串。
阅读全文
0 0
- Android Retrofit请求服务器返回字符串(非JSON)
- Android Retrofit 请求字符串(非JSON数据)
- Android开发 Retrofit使用json提交请求服务器
- Android Retrofit框架请求复杂json数据
- 通过Ajax---SpringMVC返回json字符串(非注解方式)
- Retrofit传入body返回对象或json字符串
- ssm安卓请求服务器返回json
- ajax请求返回json字符串解析方式
- 根据传入url请求,返回json字符串
- Retrofit请求字符串
- android 请求服务器,json解析
- retrofit请求直接返回string
- retrofit请求直接返回string
- retrofit请求直接返回string
- android使用asynchttp网络请求服务器返回json数据并显示在手机
- 初探Android中的请求服务器并解析返回的json数据
- ajax请求返回json字符串/json对象 处理
- Android网络请求(二)retrofit+rxjava
- Day12-39.Foreach syntax
- MailBee.NET Objects退回邮件教程(二):POP3部分
- 三种常见的部署Kubernetes的方式
- #笔记 简单使用flex与sticky footer方式解决底部固定在底栏的问题
- 高级NFC
- Android Retrofit请求服务器返回字符串(非JSON)
- ZOJ2975 伪数组压缩+组合数
- 大数据常见错误解决方案(转载)
- 冒泡排序
- ERROR Error when sending message to topic test_topic with key: null, value: 3 bytes……:部署Kafka时遇到两个问题
- 使用Okhttp执行put空的RequestBody
- java.lang.NoSuchFieldError: INSTANCE 解决方法
- java中指定编码操作文本文件
- 想要控制Linux GPIO初始状态的看过来