通过 Volley 将 Android kotlin 连接到 PHP 服务器

问题描述

我是 Android 开发新手,现在我遇到了 Volley 1.2 和 PHP 服务器 (NetBeans 12.4) 交互方面的问题。 MainActivity.kt 如下:

package com.example.easy

import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.android.volley.toolBox.StringRequest
import com.android.volley.toolBox.Volley
import com.example.easy.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    val Button = binding.button

    val url = "https://localhost/Easy/Api.PHP?params=abc"

    Button.setonClickListener {
        val queue = Volley.newRequestQueue(this)
        val stringRequest = object : StringRequest(
            Method.POST,url,com.android.volley.Response.Listener { response ->
                Toast.makeText(getApplicationContext(),response.toString(),Toast.LENGTH_SHORT).show()
            },com.android.volley.Response.ErrorListener {
                Toast.makeText(
                    getApplicationContext(),"Error",Toast.LENGTH_SHORT
                ).show()
            }){}
        queue.add(stringRequest)

    }
    }
}

PHP 代码

<?PHP
if(isset($_POST['param'])){
   echo json_encode("Success");
}
   else{
       echo json_encode("Error");
}

当我点击按钮时,会出现“错误”吐司。有人可以帮我解决这个问题吗? build.gradle(应用程序):

plugins {
id 'com.android.application'
id 'kotlin-android'
}

android {
compileSdkVersion 30
buildToolsversion "30.0.3"

defaultConfig {
    applicationId "com.example.easy"
    minSdkVersion 19
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner 
"androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android- 
optimize.txt'),'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
kotlinoptions {
    jvmTarget = '1.8'
}
buildFeatures {
    viewBinding = true
}
}

dependencies {

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.android.volley:volley:1.2.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso- 
core:3.4.0'
}

build.gradle(项目):

buildscript {
ext.kotlin_version = "1.5.10"
repositories {
    google()
    mavenCentral()
}
dependencies {
    classpath "com.android.tools.build:gradle:4.2.1"
    classpath "org.jetbrains.kotlin:kotlin-gradle- 
plugin:$kotlin_version"
    classpath "com.google.gms:google-services:4.3.2"

    // NOTE: Do not place your application dependencies here; they 
belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    google()
    mavenCentral()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest 
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.easy">

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission 
android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.Easy">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category 
  android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...