当前位置: 首页 > 知识库问答 >
问题:

翻新员额请求

申嘉慕
2023-03-14

我想将用户凭据发送到以下url:http://myurl/authenticate

"login":{"username": "JohnDoe","password": "eoDnhoJ" }
{
" r e s u l t " : " S u c c e s s " ,
"response": "Users Session ID"
}
public interface APIService {

    @POST("/authenticate")
    @FormUrlEncoded
    Call<Login> savePost(@Field("username") String username,
                         @Field("password") String password);
}

public class ApiUtils {

    private ApiUtils() {}

    public static final String BASE_URL = "http://myurl/";

    public static APIService getAPIService() {

        return RetrofitClient.getClient(BASE_URL).create(APIService.class);
    }
}
@SerializedName("username")
@Expose
private String username;
@SerializedName("password")
@Expose
private String password;
//getters and setters
}

public class RetrofitClient {
    private static Retrofit retrofit = null;

    public static Retrofit getClient(String baseUrl) {
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(baseUrl)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
}

public class LoginActivity extends AppCompatActivity {

    private EditText usernameEditText,passwordEditText;
    private Button button;
    private APIService mAPIService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        usernameEditText=(EditText)findViewById(R.id.username);
        passwordEditText=(EditText)findViewById(R.id.password);
        button=(Button)findViewById(R.id.signup);

        mAPIService = ApiUtils.getAPIService();


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String uname=usernameEditText.getText().toString();
                String pass=passwordEditText.getText().toString();
                if(TextUtils.isEmpty(uname)){
                    Toast.makeText(LoginActivity.this, "Username cannot be empty", Toast.LENGTH_SHORT).show();
                    return;
                }

                if(TextUtils.isEmpty(pass)){
                    Toast.makeText(LoginActivity.this, "Password cannot be empty", Toast.LENGTH_SHORT).show();
                    return;
                }

                if(pass.length()<4){
                    Toast.makeText(LoginActivity.this, "Password should be greater than four characters", Toast.LENGTH_SHORT).show();
                    return;
                }

                sendPost(uname, new StringBuilder(uname).reverse().toString());

            }
        });
    }


    public void sendPost(String username, String password) {
        mAPIService.savePost(username, password).enqueue(new Callback<Login>() {
            @Override
            public void onResponse(Call<Login> call, Response<Login> response) {

                if(response.isSuccessful()) {
                    showResponse(response.body().toString());
                    Log.i("Pritish", "post submitted to API." + response.body().toString());
                    Intent intent=new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent);
                    finish();
                }
            }

            @Override
            public void onFailure(Call<Login> call, Throwable t) {
                Log.e("Pritish", "Unable to submit post to API.");
            }
        });
    }

    public void showResponse(String response) {
        Log.i("Abbu",response);
    }
}

共有1个答案

彭礼骞
2023-03-14

而不是follwing代码

@POST("/authenticate")
@FormUrlEncoded
Call<Login> savePost(@Field("username") String username,
                     @Field("password") String password);

使用此代码

@POST("/authenticate")
Call<Login> savePost(@Query("username") String username,
                     @Query("password") String password);
 类似资料:
  • 我使用reform连接到一个API,该API在每个响应中包含一个惟一的令牌。这个令牌必须包含在下一个请求中。这意味着我需要在发出下一个请求之前等待请求的响应。 在改造中是否有内置机制来实现这一目标?如果不是,推荐的方法是什么?请注意,我使用的是异步改造方法和版本 1.9。拦截器用于读取令牌并自动将其添加到下一个请求中,这非常有效。当两个请求非常接近时,就会出现问题,因此第二个请求最终使用过时的令牌

  • 一、会员余额 1、商城订单支出:指该商场目前支出的订单金额数。 2、商城订单退还:指该商场目前的退款金额。 3、兑换:指该商场兑换出的金额。 4、充值:指所有会员的充值金额。 5、调整:指在会员列表中账户调整的调整余额做的调整的显示。 6、提现:指会员的提现总额。 7、提现退还:指会员提现后退还的金额。 8、查看会员的具体信息:此列表是以前改动后的具体展示以及说明。 会员昵称(指某个改动信息的昵称

  • 检查这个的步骤 添加相关信息如下,我正在设置show_mature和newsletter_subscribedtrue 预期:将show_mature和newsletter_subscribed值设置为true实际:show_mature和newswetter_sSubscribed的值为false 如果有人能让我知道为什么会发生这种情况,我会非常感激吗?谢谢

  • 我尝试设置一个完整的路径,如: 但在这里,reverfit没有看到路径实际上是完整的URL,并且正在尝试下载 有任何提示,我可以如何使用这样的动态url改造?

  • 你的企业已经创建并注册成功了,现在,你要做的是让企业成员加入到企业中。 在正式邀请之前,你需要先进行企业通讯录的导入。它不仅可以帮你快速组建组织架构,更能提高邀请成员的效率。 导入通讯录 如果你的企业已有全员通讯录,你可以在企业微信导入通讯录后,一键发送微信、邮件和短信邀请。 1 / 批量导入通讯录 设置入口:【管理后台】>【通讯录】>【批量导入/导出】查看 有以下三种导入方式可供选择: EXCE

  • 快速拉起成员使用,一起高效协同办公。 后台批量导入通讯录 ● 设置入口: 钉钉管理后台-通讯录-批量导入/导出-下载通讯录模板,批量上传,钉钉会给未注册的用户发送激活短信。 访问钉钉管理后台-点击通讯录 点击批量导入/导出 下载通讯录模板,批量上传 手机钉钉添加 ● 设置入口:企业通讯录-员工/部门管理 手机钉钉-通讯录,点击管理 企业通讯录-员工/部门管理 可批量添加手机联系人,或单个添加和管理