第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

改造 POST jsonObject 不上傳

改造 POST jsonObject 不上傳

PHP
飲歌長(zhǎng)嘯 2023-07-30 13:31:50
我已經(jīng)為此工作了幾個(gè)小時(shí),但沒有取得任何進(jìn)展。我是改造新手,基本上只是嘗試使用 jsonObject 發(fā)出簡(jiǎn)單的發(fā)布請(qǐng)求,但收到此錯(cuò)誤:java.lang.illegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $我嘗試過將客戶端代碼的幾乎每一部分更改為使用 multipart 或 requestBody 甚至我的 php 代碼,但沒有任何效果,還嘗試回顯腳本中的輸入,但它打印為空。非常感謝您的每一個(gè)回復(fù),謝謝。界面interface ApiInterface {    @Headers("Content-Type: application/json")    @POST(BuildConfig.URL_REGISTER)    fun signUpUser(@Body jsonObject: JSONObject): Call<Response>}回復(fù)data class Response(@SerializedName("success") val success: Boolean,    @SerializedName("message") val message: String,    @SerializedName("userId") val userId:String)客戶class ApiClient {private external fun register(): Stringcompanion object {    // Used to load the 'native-lib' library on application startup.    init {        System.loadLibrary("native-lib")    }}private val okhttpClient = OkHttpClient.Builder().build()private val gson: Gson = GsonBuilder()    .setLenient()    .create()val instance: ApiInterface by lazy {    val  retrofit = Retrofit.Builder()        .baseUrl(register())        .addConverterFactory(GsonConverterFactory.create(gson))        .client(okhttpClient)        .build()    retrofit.create(ApiInterface::class.java)}要求val jsonObject = JSONObject()    jsonObject.put("username", username)    jsonObject.put("password", password)    jsonObject.put("email", email)    jsonObject.put("termsOfService", termsOfService)    jsonObject.put("profilePicPath", imagePath)ApiClient().instance.signUpUser(jsonObject).enqueue(object: Callback<com.passionit.picnbuy.models.Response>{    override fun onFailure(        call: Call<com.passionit.picnbuy.models.Response>, t: Throwable) {            Toast.makeText(this@LoginOrSignUpActivity, t.message, Toast.LENGTH_LONG).show()        }
查看完整描述

2 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊

親愛的朋友。我建議將以下兩行添加到 build.gradle 文件中。


    // Logging Interceptor

    implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"

    implementation 'org.conscrypt:conscrypt-android:2.4.0'

并如下所示使用它



object ApiServiceContainer {

    private var apiService: ApiService? = null

    fun getApiService(): ApiService {

        if (apiService == null) {

            val logging = HttpLoggingInterceptor()

            logging.level = HttpLoggingInterceptor.Level.BODY

            val httpClient = OkHttpClient.Builder()

            httpClient.addInterceptor { chain ->

                val original = chain.request()

                val requestBuilder = original.newBuilder()

                    .header("Authorization", "Bearer " + token)

                    .header("Accept", "application/json")

                    .header("Content-Type", "application/json")

                val request = requestBuilder.build()

                chain.proceed(request)

            }

            httpClient.connectTimeout(30, TimeUnit.SECONDS)

            httpClient.readTimeout(30, TimeUnit.SECONDS)

            httpClient.addNetworkInterceptor(logging)

            val okHttpClient = httpClient.build()

            val gson = GsonBuilder()

                .setLenient()

                .create()

            val retrofit = Retrofit.Builder()

                .baseUrl(EndPoints.API_BASE_URL)

                .addConverterFactory(

                    GsonConverterFactory.create(gson)

                )

                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())

                .client(okHttpClient)

                .build()

            apiService = retrofit.create(ApiService::class.java)

        }

        return apiService!!

    }


這樣你就可以看到服務(wù)器發(fā)出的錯(cuò)誤。



查看完整回答
反對(duì) 回復(fù) 2023-07-30
?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

我發(fā)現(xiàn),無論出于何種原因,在 php 中接收時(shí),發(fā)送除數(shù)組或字段之外的任何內(nèi)容都會(huì)添加額外的字符,我最終只是使用這樣的字段。


interface ApiInterface {

@FormUrlEncoded

@POST(BuildConfig.URL_REGISTER)

fun signUpUser(@Field("username") username: String,

               @Field("password") password: String,

               @Field("email") email: String,

               @Field("termsOfService") termsOfService: Boolean,

               @Field("profilePicPath") profilePicPath: String): Call<Response>

}


在 php 中它是這樣接收的


$username = $_POST['username'];

$password = $_POST['password'];

$email = $_POST['email'];

$termsOfService = $_POST['termsOfService'];

$profilePicPath = $_POST['profilePicPath'];


查看完整回答
反對(duì) 回復(fù) 2023-07-30
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)