Coder Social home page Coder Social logo

litesuits / android-lite-http Goto Github PK

View Code? Open in Web Editor NEW
829.0 829.0 347.0 10.45 MB

LiteHttp is a simple, intelligent and flexible HTTP framework for Android. With LiteHttp you can make HTTP request with only one line of code! It could convert a java model to the parameter and rander the response JSON as a java model intelligently.

Home Page: http://litesuits.com?form=ghttp

License: Apache License 2.0

Java 100.00%

android-lite-http's People

Contributors

litesuits avatar zjujunge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-lite-http's Issues

android studio 提示HttpCacheExpire.class重复

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/litesuits/http/annotation/HttpCacheExpire.class

这个要怎么处理啊?弄的头都大了

小米手机上报这个问题com.litesuits.http.exception.NetException: Service Unreachable, or Network Is Unstable (服务无法访问)

把图片转成base64字符串了,两张图片可以传,多了就不行了,为什么,魅族手机没问题?
at com.litesuits.http.impl.apache.ApacheHttpClient.connectWithRetries(ApacheHttpClient.java:405)
at com.litesuits.http.LiteHttp.tryToConnectNetwork(LiteHttp.java:434)
at com.litesuits.http.LiteHttp.execute(LiteHttp.java:217)
at com.litesuits.http.LiteHttp$1.run(LiteHttp.java:268)
at com.litesuits.http.concurrent.SmartExecutor$2.run(SmartExecutor.java:179)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: javax.net.ssl.SSLException: Write error: ssl=0x9fdee800: I/O error during system call, Connection reset by peer
at com.android.org.conscrypt.NativeCrypto.SSL_write(Native Method)
at com.android.org.conscrypt.OpenSSLSocketImpl$SSLOutputStream.write(OpenSSLSocketImpl.java:771)
at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:114)
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:118)
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:124)
at org.apache.http.entity.StringEntity.writeTo(StringEntity.java:94)
at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:102)
at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:167)
at org.apache.http.impl.conn.AbstractClientConnAdapter.sendRequestEntity(AbstractClientConnAdapter.java:277)
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:242)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:444)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
at com.litesuits.http.impl.apache.ApacheHttpClient.connectWithRetries(ApacheHttpClient.java:277)

取消网络请求时,数据还在继续下载

在调用了request.cancel()后,表面上看起来像是取消下载了,但实质服务器还能给客户端发数据。
分析了原因,是因为DataParser中stream.close()不能立即关闭,需要接收完全部数据,inputstream才能关闭导致。这说明数据链路还是连接的,这样取消下载就没什么意义,还是会消耗流量,但我不知道怎么修改,有大牛知道怎么修改吗?
public T readFromNetStream(InputStream stream, long len,
String charSet) throws IOException {
if (stream != null) {
try {
this.data = parseNetStream(stream, len, charSet);
} finally {
stream.close();
}
}
return this.data;
}

通过HttpParamModel接口无法传参?

参考: https://zybuluo.com/liter/note/187568 (1. 简单参数 HttpParamModel)
版本: lite-http-2.1.5.jar
继承HttpRichParamModel方式调试正常...
但是通过以下方式请求时, 发现日志中没有输出请求参数!!!
LiteHttp liteHttp = LiteHttp.newApacheHttpClient(null);
liteHttp.getConfig().setDebugged(true);
liteHttp.executeAsync(new JsonRequest(new Goods(1, 0), ApiModel.class));
//LOG
I/LiteHttp: lite http request: http://sgarss.com:8080/FruitLover/fruitlover/api/goods? , tag: null , method: Get , cache mode: null , thread ID: 7536 , thread name: lite-1
//param参数page和type没有输出...服务端也没有收到请求参数

/////////////////////////附加代码1
@HttpUri("http://sgarss.com:8080/FruitLover/fruitlover/api/goods")
public static class Goods implements HttpParamModel {
public Integer page;
public Integer type;
public Goods(Integer page, Integer type) {
this.page = page;
this.type = type;
}
}

//////////////////////附加代码2
public final class ApiModel {
public Integer stateCode;
public String message;
public String result;
public boolean isSuccess() {
return stateCode == 200;
}
}

你们用这个框架的时候有没有报ConcurrentModificationException?

java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:346)
at java.util.LinkedHashMap$EntryIterator.next(LinkedHashMap.java:375)
at java.util.LinkedHashMap$EntryIterator.next(LinkedHashMap.java:375)
at com.litesuits.http.request.AbstractRequest.reqToString(AbstractRequest.java)
at com.litesuits.http.request.AbstractRequest.toString(AbstractRequest.java)
at java.lang.StringBuilder.append(StringBuilder.java:202)

感觉是reqToString中没有做线程安全处理导致,现在这个bug友盟每天都报,是我这个项目里最大的bug。

Cookie refected

Cookie rejected: "BasicClientCookie[version=0,name=_da_ntes_uid,domain=xxxx,path=/,expiry=Thu Jan 05 09:44:27 GMT+08:00 2017]".

Server Reject Client Exception (服务器拒绝或无法提供服务), code: 400, Bad Request

请问cookie如何设置?

请求失败

我在请求这个连接时失败
String url = "http://wap.cmread.com/r/400270618/400644484/index.htm?vt=9&cm=M2040002";
getJson2:
LiteHttpClient client = LiteHttpClient.newApacheHttpClient(this,"Mozilla/5.0");
Response res = client.execute(new Request(url));
return res.getString();
但是使用org.apache的httpclient就能成功:
HttpGet get = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
log("status = " + response.getStatusLine());
log("content " + response.getEntity().getContentLength());
InputStream in = response.getEntity().getContent();
return getStringFromInputStream(in);
这个链接多次重定向,
错误是
02-05 10:45:07.936: W/System.err(18855): 服务器拒绝或无法提供服务, http status code 400, Bad Request, 请求错误(请检查语义和参数)
02-05 10:45:07.936: W/System.err(18855): at com.litesuits.http.impl.apache.ApacheHttpClient.readDataWithRetries(ApacheHttpClient.java:483)
02-05 10:45:07.941: W/System.err(18855): at com.litesuits.http.impl.apache.ApacheHttpClient.readDataWithRetries(ApacheHttpClient.java:473)
02-05 10:45:07.941: W/System.err(18855): at com.litesuits.http.impl.apache.ApacheHttpClient.readDataWithRetries(ApacheHttpClient.java:473)
02-05 10:45:07.941: W/System.err(18855): at com.litesuits.http.impl.apache.ApacheHttpClient.execute(ApacheHttpClient.java:216)
02-05 10:45:07.941: W/System.err(18855): at com.example.test.MainActivity.getJson2(MainActivity.java:117)
02-05 10:45:07.941: W/System.err(18855): at com.example.test.MainActivity$1.run(MainActivity.java:69)

AsyncExecutor的abort方法

AsyncExecutor的abort方法没有在主线程中运行,如果在abort中做视图的更新操作,比如设置TextView显示为失败,那么会有问题,我觉得应该和onPostExecute方法一样处理.

网络请求能换成HttpUrlConnection吗?

我看了下源码好像网络请求用的HttpClient,实际使用中发现会有比较小的概率下会出现网络无任何返回的情况,不知道是不是因为这个原因,现在android不是已经都废弃httpclient了吗,是不是可以考虑下

有适配kotlin语言吗?

在用kotlin语言开发时,litehttp.setHttpListener(),这一行代码是会报错的,望改进~~或者提供一个解决方案.谢谢~

自动重新请求了

我设置了 setDefaultMaxRetryTimes =0 了.为什么 用2G的网络连接的时候.经常发生 自动重新请求的现象

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.