Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Feb 21 01:06
    vascorsd starred Spinoco/fs2-http
  • Jan 19 16:13
    jhnsmth commented #42
  • Jan 19 16:00
    jhnsmth commented #37
  • Dec 21 2019 15:46
    shankarshastri starred Spinoco/fs2-http
  • Dec 02 2019 23:20
    mgibowski starred Spinoco/fs2-http
  • Nov 14 2019 15:08
    tarossi starred Spinoco/fs2-http
  • Nov 03 2019 21:20
    marko-asplund commented #41
  • Nov 03 2019 21:13
    marko-asplund opened #42
  • Nov 03 2019 21:07
    marko-asplund synchronize #41
  • Nov 03 2019 16:54
    pomadchin starred Spinoco/fs2-http
  • Nov 03 2019 16:33
    olegkovalenko starred Spinoco/fs2-http
  • Nov 01 2019 21:42
    brandonmott starred Spinoco/fs2-http
  • Oct 24 2019 16:44
    marko-asplund commented #40
  • Oct 24 2019 16:40
    sorenbug commented #40
  • Oct 22 2019 17:52
    marko-asplund opened #41
  • Oct 21 2019 19:48
  • Oct 18 2019 08:45

    pchlupacek on v0.4.0-M4

    (compare)

  • Oct 18 2019 08:45

    pchlupacek on 0.4-spinoco-compat

    Setting version to 0.4.0-M4 Setting version to 0.4.0-SNAPSH… (compare)

  • Oct 18 2019 08:43

    pchlupacek on 0.4-spinoco-compat

    fixed the setUseClientMode posi… (compare)

  • Oct 18 2019 07:12

    pchlupacek on v0.4.0-M3

    (compare)

Anthony Cerruti
@srnb_gitlab
@AdamChlupacek What do you mean?
But that forces me to put Bot before the thing
Adam Chlupacek
@AdamChlupacek
@srnb_gitlab well basically, fs2-http is dependent on spinoco/protocols where are all headers defined, it is possible that in your version of protocols the authorisation header does not yet support the multiple types of authorisation, thats why I was asking on what version of protocols are you. Anyhow in this encoding i think if you put your token instead od the bot, and left the field where you have the token now as empty string, it should be fine
Anthony Cerruti
@srnb_gitlab
@AdamChlupacek Nope. Then it throws an error about a trailing space.
Adam Chlupacek
@AdamChlupacek
@srnb_gitlab thats weird, i am quite sure that we do not do these checks
I am also confused with the previous error as I could not find the “OAuthCredentials” error anywhere in the code
Anthony Cerruti
@srnb_gitlab
OAuthToken, not OAuthCredentials
It's in the same file as the other credentials
Adam Chlupacek
@AdamChlupacek
@srnb_gitlab yeah, you seem to be using some outdated versions, could you please ensure that you are using "com.spinoco" %% "protocol-http" % "0.3.17" atleast, or "0.3.18-SNAPSHOT" for the newest one. Also please use the up to date fs2-http "0.4.1"
Anthony Cerruti
@srnb_gitlab
image.png
@AdamChlupacek
Should I require protocol-http explicitly?
Adam Chlupacek
@AdamChlupacek
@srnb_gitlab yes you should, protocols have different release cycle compared to fs2-http
Anthony Cerruti
@srnb_gitlab
Alright. I'll put in a reminder to do so.
Anthony Cerruti
@srnb_gitlab
image.png
@AdamChlupacek
val catsCoreVersion = "2.0.0-M1"
val catsEffectVersion = "2.0.0-M1"
val fs2CoreVersion = "1.0.4"
val fs2HttpVersion = "0.4.1"
val protocolHttpVersion = "0.3.17"
val circeVersion = "0.12.0-M1"
val circeFs2Version = "0.11.0"
val spireVersion = "0.16.1"

lazy val discocat = (project in file(".")).settings (
  organization := "org.discordscala",
  name := "discocat",
  version := "0.1.0",
  scalaVersion := "2.12.8",
  libraryDependencies ++= Seq(
    "org.typelevel" %% "cats-core" % catsCoreVersion,
    "org.typelevel" %% "cats-effect" % catsEffectVersion,
    "co.fs2" %% "fs2-core" % fs2CoreVersion,
    "com.spinoco" %% "fs2-http" % fs2HttpVersion,
    "com.spinoco" %% "protocol-http" % protocolHttpVersion,
    "io.circe" %% "circe-core" % circeVersion,
    "io.circe" %% "circe-generic" % circeVersion,
    "io.circe" %% "circe-generic-extras" % circeVersion,
    "io.circe" %% "circe-parser" % circeVersion,
    "io.circe" %% "circe-fs2" % circeFs2Version,
    "org.typelevel" %% "spire" % spireVersion,
  ),
  scalacOptions ++= Seq(
    "-unchecked",
    "-deprecation",
    "-feature",
    "-Ypartial-unification",
    "-language:higherKinds",
  ),
  addCompilerPlugin(
    "org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full
  ),
)
I do have the latest protocol-http on maven
image.png
Adam Chlupacek
@AdamChlupacek
Hmm interesting, maybe i misslooked when checking, how it is being serialised. Since your header is not following the RFC, you may have to define your own header, but i find it weird that discord would require non standard headers
Anthony Cerruti
@srnb_gitlab
@AdamChlupacek I can't define my own header because it's a sealed trait
Adam Chlupacek
@AdamChlupacek
you can override the default serialisation of the authorisation header as shown in the example
Anthony Cerruti
@srnb_gitlab
GenericHeader seems to have done it
Adam Chlupacek
@AdamChlupacek
Good, that is a good quick fix if you are only needing client side of things to work.
Anthony Cerruti
@srnb_gitlab
java.lang.ClassCastException: spinoco.protocol.http.header.GenericHeader cannot be cast to spinoco.protocol.http.header.Authorization
    at scodec.Codec$$anon$2.encode(Codec.scala:200)
    at scodec.Codec$$anon$7.encode(Codec.scala:400)
    at scodec.EncoderFunctions.$anonfun$encodeBoth$1(Encoder.scala:111)
    at scodec.Attempt$Successful.flatMap(Attempt.scala:94)
    at scodec.EncoderFunctions.encodeBoth(Encoder.scala:110)
    at scodec.EncoderFunctions.encodeBoth$(Encoder.scala:109)
    at scodec.Codec$.encodeBoth(Codec.scala:460)
    at scodec.codecs.TupleCodec.encode(TupleCodec.scala:12)
    at scodec.codecs.TupleCodec.encode(TupleCodec.scala:6)
    at scodec.Codec$$anon$2.encode(Codec.scala:200)
    at scodec.EncoderFunctions.$anonfun$encodeBoth$1(Encoder.scala:111)
    at scodec.Attempt$Successful.flatMap(Attempt.scala:94)
    at scodec.EncoderFunctions.encodeBoth(Encoder.scala:110)
    at scodec.EncoderFunctions.encodeBoth$(Encoder.scala:109)
    at scodec.Codec$.encodeBoth(Codec.scala:460)
    at scodec.Codec$$anon$3.encode(Codec.scala:303)
    at scodec.Codec$$anon$3.encode(Codec.scala:301)
    at scodec.Codec$$anon$2.encode(Codec.scala:200)
    at scodec.Codec$$anon$7.encode(Codec.scala:400)
    at spinoco.protocol.http.codec.helper$.go$2(helper.scala:162)
    at spinoco.protocol.http.codec.helper$.$anonfun$parametrizedN$1(helper.scala:168)
    at scodec.Attempt$Successful.flatMap(Attempt.scala:94)
GenericHeader did not do it
Adam Chlupacek
@AdamChlupacek
Oh yeah, actually that is right, as "Authorization" header is registered as one of the known headers, it will try to encode it as such. You need to define your own header, and create your own HttpHeader codec using the HttpHeaderCodec.codec, so that you can actually override the default coded for the header.
Anthony Cerruti
@srnb_gitlab
:weary: case class TokenHeader(token: String) should work right
Adam Chlupacek
@AdamChlupacek
Yeah, that should be fine, if you follow the docs
You can actually just use the generic, if you set that authorisation gets a codec for a generic header it is one of the exaplmes in the doc
Anthony Cerruti
@srnb_gitlab
Yeah, everything is working now
Adam Chlupacek
@AdamChlupacek
Good, thats great
Sait Sami Kocataş
@Deliganli

hi everyone,

I am trying to transform the stream response to an effect response like below

httpClient.request(request).compile.lastOrError

I am trying to keep the http responses as effect if possible. I want to use fs2-http for websocket as well, that's why even though in some places i need to lift it to stream it makes more sense to me to keep it as effect first. But when I do that I am having the exception below on any http request.

 java.nio.channels.ClosedChannelException: null                                                              
         at java.base/sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:234)  
         at java.base/sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:298)  
         at fs2.io.tcp.Socket$.$anonfun$apply$3(Socket.scala:283)                                            
         at fs2.io.tcp.Socket$.$anonfun$apply$3$adapted(Socket.scala:276)

maybe it is not intended to evaluate that way, is it possible to use this way?

Anthony Cerruti
@srnb_gitlab
That's FS2-IO's socket
I have that same problem with FS2's sockets
You want to ask here
Sait Sami Kocataş
@Deliganli
thanks, I am moving it now
Seth Lasky
@TheMover
Hey guys, how can I send an SSL cert along with a request?
Seth Lasky
@TheMover
Also(sorry for rapid fire questions) is there a good way to post multipart data?
Seth Lasky
@TheMover
Figured out the ssl context, now it's only one question
Adam Chlupacek
@AdamChlupacek
Hello @TheMover , sadly currently we do not have any support for multipart data. I have some preliminary support in one of my project, I could polish it over the weekend and get it into snapshot.
Seth Lasky
@TheMover
That would be sweet, could I take a look at it?
Adam Chlupacek
@AdamChlupacek
@TheMover Its not public, its in our production, we wanted to test it there before we put it into fs2-http, but it is similar how we have multipart done for email (https://github.com/Spinoco/fs2-mail/blob/series/0.4/src/main/scala/spinoco/fs2/mail/mime/MIMEPart.scala)
Sait Sami Kocataş
@Deliganli

I was checking client side web sockets. I can see there is a parameter for pinging in server function but it is not exposed in client side

WebSocket:112

case None => (body through impl.webSocketOf(pipe, Duration.Undefined, maxFrameSize, client2Server = true) through socket.writes(None)).drain ++ emit(None)

Is there a way I am missing?

Adam Chlupacek
@AdamChlupacek
@Deliganli This seems to be an oversight. I think there is no reason why client should not allow to send ping.
Adam Chlupacek
@AdamChlupacek
@TheMover Hey there, I have not managed to get the whole thing ported yet, but there is now PR into protocols which is required to enable to port the multipart support over to the fs2-http. So progress is there but slow :/
Anthony Cerruti
@srnb_gitlab
What's blocking fs2-http from 2.13 at the moment?
Adam Chlupacek
@AdamChlupacek
Hey @srnb_gitlab we are waiting for protocols to get their 2.13 version, they are however blocked on kafka, which should get 2.13 build in the 2.4.0 release, until then we are stuck :/