Модифицировать общий заголовок без OkHttp?

Если вы используете Qt и endl, вы случайно можете использовать неправильный endl, случившийся со мной сегодня, и я был как ..WTF ??

#include <iostream>
#include <QtCore/QtCore> 
#include <QtGui/QtGui>
//notice that i dont have a "using namespace std;"
int main(int argc, char** argv)
{
    QApplication qapp(argc,argv);
    QMainWindow mw;
    mw.show();
    std::cout << "Finished Execution !" << endl << "...";
    // Line above printed: "Finished Execution !67006AB4..."
    return qapp.exec();
}

Конечно, это была моя ошибка, так как я должен был написать std::endl, но если вы используете endl, qt и using namespace std;, это зависит от порядка включенных файлов, если будет использоваться правильный endl. *

Of Конечно, вы могли бы перекомпилировать Qt для использования пространства имен, поэтому вы получите ошибку компиляции для приведенного выше примера.

EDIT: Забыл отметить, что Qt endl объявлен в «qtextstream.h», который является частью QtCore

* EDIT2: C ++ выберет правильный endl, если у вас есть using для std::cout или пространства имен std, так как std::endl находится в том же пространстве имен, что и std::cout , Механизм ADL C ++ будет выбирать std::endl.

3
задан Khemraj 20 March 2019 в 10:23
поделиться

1 ответ

Вы используете Interceptor для добавления всех желаемых заголовков следующим образом:

OkHttpClient.Builder builder = new OkHttpClient.Builder();

        builder.addInterceptor(new Interceptor() {
            Request request;

            @Override
            public Response intercept(@NonNull Chain chain) throws IOException {

                request = chain.request().newBuilder().addHeader("Authorization", "Bearer " + GlobalClass.accessToken)
                        .addHeader("Accept", "application/json").build();

                return chain.proceed(request);
            }
        }).addNetworkInterceptor(httpLoggingInterceptor);

и возвращаете построителя с этим

 return builder.connectTimeout(15, TimeUnit.SECONDS)
                .writeTimeout(25, TimeUnit.SECONDS)
                .readTimeout(15, TimeUnit.SECONDS).build();
0
ответ дан Hossam Hassan 20 March 2019 в 10:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: