Comments (9)
@gokulchandra looks good for me.
how about asXXX
? it's more common naming pattern in my mind
inline fun Response.asString(): String(?) = body()?.string()
inline fun Response.asJson() ...
The only thing we didn't discuss yet - asStream
, as you mentioned before
from kohttp.
I should have Draft PR for this issue over the next 2 days.
We can improve on that.
from kohttp.
Please also have a look at my latest commits, there is a bit more developed upload dsl idea together with multipart
from kohttp.
Using #82 to work on this.
from kohttp.
@rybalkinsd I guess the challenge is in how the API should look when we have to deal with different data types in the response. From a high level I guess we could categorise types under :
- byte arrays
- strings
- json
- streams (have to figure out how to handle streams)
httpXXX { } .use {
val textContent = text() // returns response textual content
val content = json() // returns response body as json if exists and valid json
}
Thoughts?
from kohttp.
m/b it's better to allow interaction without use
(handle on our side)
There are two big cases.
- User want to get content eagerly, format does not matter
- User does not want to have all the content in memory usually a byte stream
from kohttp.
for example Fuel has .responseString { request, response, result -> ... }
API
from kohttp.
Here is a reference how http4k acts. Our goal is to analyze their experience and provide the most fluent and easiest DSL as possible
from kohttp.
@rybalkinsd I took a look at what Fuel provides. Correct me if I don't understand this. Here's a rough idea.
// Defining this could allow access to the String Content in response
internal fun Response.string() = body()?.string()
val stringResponse = "https://www.yandex.ru/search/?text=iphone".httpGet().string()
I understand this isn't a very DSL based approach, but its allows easier access since the user does not need to be concerned with anything(Request, Response, Result) unlike even what Fuel provides with .responseString { request, response, result -> ... }
.
from kohttp.
Related Issues (20)
- Sample code on how to set a read/connect timeout HOT 4
- [kohttp-docs] Add a clear example configuring and passing client to httpXXX { }
- [Better engenering] migrate to Jitpack release?
- [kohttp-docs] missing kohttp-jackson module examples and description
- [kohttp-moshi] Introduce integration
- [samples][spring] move example from abstract requests to weather localizer HOT 2
- Can not build with AS 3.5.2
- My APP crash HOT 2
- How can I make this code not so awful? HOT 2
- SSL configuration not working for JDK 9+ HOT 3
- [android] Library proguard config
- [kohttp] Optimise project imports
- [kohttp-backend] Async http client
- possible performance problems HOT 1
- Bump kohttp version to work with latest Android HOT 6
- Response doc is misleading - .asJson is missing HOT 1
- Function to in FormBodyBuilder with nullable type has unexpected behavior HOT 2
- How can I use kohttp for this specific curl command?
- Support Upload And Download Listener
- url is double encoded if used with url(encodedUrl)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kohttp.