2011-09-21 130 views
1

对于我的项目,我必须使用第三方Java库,它向一个众所周知的服务器发出一些HTTP请求。我需要将自己的标题添加到这些请求中,并想知道我该如何实现它?如何拦截Android上由第三方库发出的HTTP请求?

一个HttpRequestInterceptor似乎是答案,但我怎么能'注册'这个全球性的,以便第三方库将使用它?是否可以使用反射?

我不想使用代理应用程序。只是我的应用程序应该拦截并修改第三方库的HTTP请求。

感谢您的帮助, 迈克尔

+0

那么没有合适的解决方案? thnx – baraka

回答

0

我需要我自己的头添加这些要求,并知道如何可以实现呢?

不要使用第三方Java库,并自己发出HTTP请求。或者,删除自定义标题的需要,以便您可以毫无问题地使用现有的第三方Java库。

一个HttpRequestInterceptor似乎是答案,但我怎么能'注册'这个全局,以便第三方库会使用它?

没有这样的全局拦截器,它很可能是库不使用HttpClient,无论如何 - “拦截器”是一个HttpClient概念。

是否可以使用反射?

你将不得不问问未识别的第三方Java库的作者该问题。

+0

不幸的是,它不是一个摆脱图书馆和/或标题的选项:-( –

+0

@Michael Preinbauer:然后说服图书馆作者给你钩子来设置标题。 – CommonsWare

0

创建自定义URLStreamHandlerFactory和URLStreamHandler,并通过调用URL.setURLStreamHandlerFactory(this)从应用程序onCreate()中设置它,它将允许您在传递给服务器之前截取并更改标头。