【问题标题】:Where to insert API key into POST request in Android studio在 Android Studio 的 POST 请求中插入 API 密钥的位置
【发布时间】:2017-02-24 02:37:43
【问题描述】:

只想知道我在下面的代码中在哪里插入服务器的 API 密钥:

public class GetCurrentJob extends Job {

Context context;
GetFeedback feedback;


protected GetCurrentJob(Context context, GetFeedback fb) {
    super(new Params(PRIORITY.HIGH).requireNetwork());
    feedback = fb;
    this.context = context;
}

@Override
public void onAdded() {

}

@Override
public void onRun() throws Throwable {

    //POST feedback to server... require API key. How?
    Response<String> response = Ion.with(context)
            .load("POST", URLbuilder.getURL())
            .setStringBody(feedback.toJson())
            .asString()
            .withResponse()
            .get();


    //Toast.makeText(context, "post", Toast.LENGTH_SHORT).show();

    if (response.getHeaders().code() != HttpURLConnection.HTTP_OK) {
        Log.d("test", "error in request " + String.valueOf(response.getResult()));
        return;
    }
    else
    {
        Log.d("test", "success" + String.valueOf(response.getResult()));
    }


}

@Override
protected void onCancel(int cancelReason, @Nullable Throwable throwable) {

}

@Override
protected RetryConstraint shouldReRunOnThrowable(@NonNull Throwable throwable, int runCount, int maxRunCount) {
    return null;
}
}

我的 URLbuilder 类:

public class URLbuilder {

private static final String SERVER = "http://jxapp-s-ticket.cloudapp.net/jxapp_ticket/upload/api/http.php/tickets.json";

public static String getURL(){
    return Uri.parse(SERVER).buildUpon().toString();
}
}

只是一点点信息:

  • 我的应用接受用户反馈并将反馈返回给服务器,然后服务器将生成一张票给用户。

  • 我能够从服务器(即日志)生成响应。但是日志会生成:“请求中的错误需要有效的 API 密钥”。

  • 我需要一种插入 API 密钥的方法,但我不知道如何插入(我对 Android Studio 以及 POST 和 GET 操作都很陌生)!

如果可能,请提供帮助!谢谢!

【问题讨论】:

  • 您的服务器如何获取 API 密钥?通常,如果它是一个 API 密钥,您只需在查询参数中发送
  • 嘿嗨!谢谢回复。我从我的一位前辈那里得到了答案。我解决它的方法是肯定的,通过像这样编辑离子的查询参数:Response&lt;String&gt; response = Ion.with(context) .load("POST", URLbuilder.getURL()) .setHeader("x-api"," API KEY HERE ") .setStringBody(feedback.toJson()) .asString() .withResponse() .get();

标签: java android json android-ion


【解决方案1】:
Response<String> response = Ion.with(context) 
.load("POST", URLbuilder.getURL()) 
.setHeader("x-api"," API KEY HERE ") 
.setStringBody(feedback.toJson()) 
.asString() 
.withResponse() 
.get();

如果有人遇到同样的问题,这就是我解决这个问题的方法。 通过添加带有 API 密钥的标头来修改离子格式。 所有学分都归功于我的一位前辈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2014-05-12
    • 2016-08-04
    • 2016-06-23
    相关资源
    最近更新 更多