1. 程式人生 > >Retrofit結合RxJava簡單get/post請求(傳參)

Retrofit結合RxJava簡單get/post請求(傳參)

ApiServices:

public interface ApiServices {
    //post請求:第一個引數url,可以傳遞為空,不能不寫,第二個map集合為引數
    @POST
    Observable<PageBean> postPage(@Url String url, @QueryMap Map<String,String> map);
    //get請求:直接把引數拼接成url即可
    @GET
    Observable<PageBean> getPage(@Url String url);
}

get請求:

public
void get(){ Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //baseUrl:引數之前的部分 .baseUrl("https://api.tianapi.com/wxnew/") .build(); ApiServices services = retrofit.create(ApiServices.class); //params1:所有引數進行拼接就可以
Observable<PageBean> observable = services.getPage("?key=8d6e3228d25298f13af4fc40ce6c9679&page=1&num=10"); observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<PageBean>() { @Override
public void onCompleted() { } @Override public void onError(Throwable e) { Log.d("heihei", "onError: 失敗"); e.printStackTrace(); } @Override public void onNext(PageBean pageBean) { Log.d("heihie", "onNext: " + pageBean.getMsg()); } }); }

post請求:

 public void post(){
        Retrofit retrofit = new Retrofit.Builder()
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                //baseUrl:引數之前的部分
                .baseUrl("https://api.tianapi.com/wxnew/").build();
        ApiServices services = retrofit.create(ApiServices.class);
        HashMap<String,String> map = new HashMap<>();
        map.put("key","8d6e3228d25298f13af4fc40ce6c9679");
        map.put("num","10");
        map.put("page","2");
        //parames1:url傳空字串就可以,但是不能不寫
        Observable<PageBean> postPage = services.postPage("", map);
        postPage.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<PageBean>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d("heihei", "onError: 失敗");
                        e.printStackTrace();
                    }

                    @Override
                    public void onNext(PageBean pageBean) {
                        Log.d("heihie", "onNext: " + pageBean.getMsg());
                    }
                });
    }

依賴:

   compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'
    compile 'io.reactivex:rxandroid:1.1.0'

相關推薦

Retrofit結合RxJava簡單get/post請求()

ApiServices: public interface ApiServices { //post請求:第一個引數url,可以傳遞為空,不能不寫,第二個map集合為引數 @POS

Vue:axios中POST請求問題

color catch str ios 接收 django框架 nsf head con vue的ajax請求用的是axios組件,結果在用到post請求的時候,發現給後臺傳data時,後臺(python語言+django框架)接收不到。 後臺的request.body顯示

Vue:axios中POST請求問題---傳遞數組 (補充)

form div 個數 json array 利用 val 失敗 轉化 在上一篇文章中提到的------transformRequest方法,也會將數組解析成字符串傳給後臺。 那麽如何避免這個問題? (一) 將數組轉化為json字符串 通過JSON.stringify()轉

WebApi中Post請求時後端的接收方式

1.單引數 [FromBody]+變數方式(不推薦):如public string PostUser([FromBody] string user_id){} 由於我們的前端習慣用key/value的方式進行請求,而此法要求key為空,有點不三不四,程式碼不規範,故此不推薦。總不能都是你寫的

如何呼叫http介面通過get()/post()方法

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.

php 中使用cURL發送get/post請求,上圖片,批處理

cit gda 抓取 記錄 rem 學習 網頁 lose XML https://mp.weixin.qq.com/s/8luqMEd8xt8oJxFLLCU1XA 文章正文 cURL是利用url語法規定傳輸文件和數據的工具。php中有curl拓展,一般用來實現網絡抓取,模

C++ 簡單實現HTTP GET/POST 請求

轉載出處:詳情http://m.blog.csdn.net/article/details?id=16336713 HTTP(超文字傳輸協議)是一種客戶端與服務端的傳輸協議,最早用於瀏覽器和伺服器之間的通訊,後來因為其使用靈活、方便等特點,廣泛用於客戶端與服務端的通訊。文章

Retrofit2.0的get post請求簡單資料

首先匯入依賴 compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' compile 'com.squareup.retrofit2:adap

Java-簡單的 傳送http get/post請求 呼叫介面/方法

例子如下:1.請求引數srequestUrl 是你要傳送的介面引數用map 存起來 sRet 是返回值 如果傳送的介面有的話就寫 然後呼叫 NetUtils.requset請求 (介面,引數,get/post(選擇一種傳送方式))String sRequestUrl ="ht

簡單get/post方法http請求工具類,帶head引數

package com.***.util; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URISyntaxException; import

node10---GET請求和POST請求

gin ida host req div lis ble form 文件上傳 GET請求的參數在URL中,在原生Node中,需要使用url模塊來識別參數字符串。在Express中,不需要使用url模塊了。可以直接使用req.query對象。 ● POST請求在expres

【node.js】GET/POST請求、Web 模塊

ima esp ges 實例 bst node.js 參數 模塊 pos 獲取GET請求內容 node.js 中 url 模塊中的 parse 函數提供了這個功能。 var http = require(‘http‘); var url = require(‘url‘);

Node params和query的Get請求

框架 http 添加屬性 創建 amp app console uid type //1:加載http express框架//2:創建服務器const http = require("http");const express = require("express");var

request.getParameterNames獲得請求數的名字(Get或者Post請求數都可以)

獲取 java util next 發送 parameter 子類 所有 tel 1 protected Map<String, String> initRequestParams(HttpServletRequest request) { 2

servlet 中get,post請求亂碼問題

post請求 servlet blog images 亂碼問題 bsp 技術分享 servle alt servlet 中get,post請求亂碼問題

php CURL 發送get,post請求

get請求 超時 etop 上傳 func fun 發送請求 地址 res // 發送一個get請求 $url 發送地址 function get($url) { //初始化操作 $curl = curl_init($url);

node的express框架,核心第三方模塊body-parser 獲取我們所有post請求過來數據

賦值 傳遞 xtend 接收 返回 .json oca data host - 安裝 body-parser模塊- npm install body-parser -S- 調用- let bodyParser=require(‘body-parser‘);- 設置中間件-

2017年10月18日-php curl get post請求

window check span cnblogs req 總結 比較 小結 cap 一、CURL小結 個人將歸納curl請求總結成三步 1、創建curl 句柄(curl_init),並設置參數(curl_setopt)(打開冰箱)

Java發送http get/post請求,調用接口/方法

strong org 釋放 github string charset 獲取url lean catch 由於項目中要用,所以找了一些資料,整理下來。 GitHub地址: https://github.com/iamyong 轉自:http://blog.csdn.n

httpclient get/post請求

ror dpa line 響應 get execute 對象 handle 判斷網絡連接 public static String httpPost(String url, JSONObject json) { String respContent = null; tr