android - 改造 android 不工作和改造错误 401

标签 android retrofit domdocument

我正在使用 Retrofit 连接电子设备。但它以不正确的数据响应。 请给我一些解决这个问题的建议。你们知道这与连接有关吗? 我的网址:http://11.10.88.23/ajax_control&/

接口(interface)实验

public interface ExApi {
@GET("/ajax_control&")
public void getFeed(Callback<Document> response);
}

主类

public class MainActivity extends Activity implements RequestInterceptor{
    Button mButton;
    public static final String BASE_URL="http://11.10.88.23/";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mButton = (Button) findViewById(R.id.button);
            mButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                            requestData(BASE_URL);
                    }
            });
    }
    private void requestData(String url){
            RestAdapter adapter=new RestAdapter.Builder()
                    .setEndpoint(url).build();
            ExApi api=adapter.create(ExApi.class);
            api.getFeed(new Callback<Document>() {
                    @Override
                    public void success(Document document, Response response) {
                            Toast.makeText(getApplicationContext(), "value: " + document.getElementsByTagName("LED").item(0).getChildNodes().item(0).getNodeValue(), Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void failure(RetrofitError retrofitError) {
                            Log.d("lai loi: ", retrofitError.getMessage());
                    }
            });

    }

    @Override
    public void intercept(RequestFacade requestFacade) {
            final String author=encodeCredentialsForBasicAuthorization();
            requestFacade.addHeader("Authorization", author);
    }
    private String encodeCredentialsForBasicAuthorization() {
            final String userAndPassword = "user:admin";
            return "Basic " + Base64.encodeToString(userAndPassword.getBytes(), Base64.NO_WRAP);
    }
}

最佳答案

错误 401 unauthorized 表示请求因凭据无效而被拒绝。这种身份验证称为基本身份验证,您也可以在 HTTP header 中传递这些参数。

这是一篇关于如何在 Retrofit 中完成此操作的文章:https://futurestud.io/blog/android-basic-authentication-with-retrofit/

关于android - 改造 android 不工作和改造错误 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325912/

相关文章:

android - call.enqueue 不起作用并且 response.body 在改造中为 null

JavaScript 等价于 php DOMDocument 对象

javascript - 如何在 JavaScript 中更改 Div 子元素上的文本颜色

android - 移动操作系统如何与基带操作系统对话

android - 无法在 iOS 中点击 Admob 横幅广告

java - 用于 wifi 连接的广播接收器无法正常工作

xml - 如何在片段创建中使用全局命名空间定义?

java - Android 上的图形可视化

java - 无法验证来自 RxJava 订阅者的模拟方法调用

java - 后台服务不停止 Android