首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏函数式编程语言及工具

    Akka(38): Http:Entityof ByteString-数据传输基础

    在Akka-http里我们把需要传输的数据转换成ByteString,通过网络发送給接收端、接收端再把收到消息Entity中的ByteString转换成目标类型的数据。 很明显,HttpEntity可以分两大类,一种是Strict类型的,它的data是ByteString。 另一种是UniversalEntity类型,它的数据dataBytes是Source[ByteString,Any]。无论如何最终在线上的还是ByteString。 有些迷糊,不过应该complete做了些字符串到ByteString的转换。我们可以从上面这个runService函数得到证实。 转换成了String,也就是说服务器端发送的Entity里的数据是ByteString

    1.3K90发布于 2018-01-05
  • 来自专栏全栈程序员必看

    android okio使用方法,Android 开源框架 Okio 原理剖析「建议收藏」

    1.1,ByteString string 这个词本意是“串”,只不过在编程语言的世界中,我们基本都用它来指代“字符串”,其实字符串应该叫 CharString,因此 ByteString 的意义也就很好理解了 ByteString 代表一个 immutable 字节序列。对于字符数据来说,String 是非常基础的,但在二进制数据的处理中,则没有与之对应的存在,ByteString 应运而生。 和 ByteString 一样,Buffer 的实现也使用了很多高性能的技巧。 2,ByteString 详解 ByteString 整个类不到 500 行,完全可以通读,但我们还是从实际的使用例子出发。 && ((ByteString) o).size() == data.length && ((ByteString) o).rangeEquals(0, data, 0, data.length);

    1K10编辑于 2022-09-02
  • 来自专栏黯羽轻扬

    从惰性IO说起_Haskell笔记6

    bytestring,也没有惰性List的内存优势 lazy bytestring就像chunk List(List中每个元素都是64K大小的strict bytestring),既减少了惰性带来的效率影响 , takeWhile, filter 所以先要避免命名冲突: -- 惰性ByteString import Data.ByteString.Lazy as B -- 严格ByteString import Data.ByteString as S 创建一个ByteString: -- Word8 List转ByteString B.pack :: [GHC.Word.Word8] -> ByteString -- 严格ByteString转惰性ByteString B.fromChunks :: [Data.ByteString.Internal.ByteString] -> ByteString 其中Word8 : GHC.Word.Word8 -> B.ByteString -> B.ByteString B.cons' :: GHC.Word.Word8 -> B.ByteString -> B.ByteString

    2.8K30发布于 2019-06-12
  • 来自专栏SpringCloud专栏

    Java中使用etcd,包括基本的set、get、超时设置,watch监听等

    /** * 判断剩余的过期时间 */ long timeToLive(long leaseId); } 实现这个接口 import com.google.protobuf.ByteString (key), ByteString.copyFromUtf8(value)).sync(); } @Override public void put(String key, String value, long leaseId) { kvClient.put(ByteString.copyFromUtf8(key), ByteString.copyFromUtf8(value @Override public KvClient.WatchIterator watch(String key) { return kvClient.watch(ByteString.copyFromUtf8 @Override public KvClient.WatchIterator watchPrefix(String key) { return kvClient.watch(ByteString.copyFromUtf8

    3.4K21发布于 2020-01-13
  • 来自专栏函数式编程语言及工具

    Akka(39): Http:File streaming-文件交换

    Akka提供了一组文件读写函数,如下: def fromPath(f: Path, chunkSize: Int = 8192): Source[ByteString, Future[IOResult chunkSize, startPosition = 0) def fromPath(f: Path, chunkSize: Int, startPosition: Long): Source[ByteString "))) def toPath(f: Path, options: Set[OpenOption] = Set(WRITE, TRUNCATE_EXISTING, CREATE)): Sink[ByteString ,_],直接就是流型式,应该可以直接放入Http消息的Entity中,如下:  def fileStream(filePath: String, chunkSize: Int): Source[ByteString 因为Entity.dataByes就是Source[ByteString,_],所以我们可以直接把它导入Sink: entity.dataBytes.runWith(FileIO.toPath

    1.5K90发布于 2018-01-05
  • 来自专栏函数式编程语言及工具

    Akka(41): Http:DBTable-rows streaming - 数据库表行交换

    因为文件内容是以一堆bytes来表示的,而http消息的数据部分也是byte类型的,所以我们可以直接用Source[ByteString,_]来读取文件然后放进HttpEntity中。 我们还提到:如果需要进行数据库数据交换的话,可以用Source[ROW,_]来表示库表行,但首先必须进行ROW -> ByteString的转换。 在上期讨论我们提到过这种转换其实是ROW->Json->ByteString或者反方向的转换,在Akka-http里称之为Marshalling和Unmarshalling。 服务端收到数据后又要进行反向的转换即把Request.Entity.dataBytes从Source[ByteString,_]转回Source[T,_]。 如果我们的目的是简单提供一个Source[ByteString,_],我们是否可以直接调用Spray-Json的函数来进行ROW->Son->ByteString转换呢?

    1.8K70发布于 2018-01-05
  • Haskell网络爬虫:视频列表获取案例分析

    LANGUAGE OverloadedStrings #-}import Network.HTTP.Simple (httpLBS, parseRequest, Response)import Data.ByteString.Lazy (ByteString)fetchPage :: String -> IO (Response ByteString)fetchPage url = httpLBS =<< parseRequest =>))data Video = Video { title :: String , link :: String } deriving ShowparseVideoList :: ByteString (ByteString)data Video = Video { title :: String , link :: String } deriving ShowfetchPage :: String -> IO (Response ByteString)fetchPage url = do let proxyHost = "xxxxx" proxyPort =

    51510编辑于 2024-05-29
  • 来自专栏GoLang全栈

    甩锅技能:让前端他们自己生成海报

    self.posterUrl); // 添加 canvas 到 body document.body.appendChild(canvas) }); dataURItoBlob(base64Data) { var byteString ; if (base64Data.split(',')[0].indexOf('base64') >= 0){ byteString = atob(base64Data.split(', ')[1]); }else{ byteString = unescape(base64Data.split(',')[1]); } var mimeString = base64Data.split (',')[0].split(':')[1].split(';')[0]; var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], {type

    90130编辑于 2022-12-05
  • 来自专栏Python爬虫与数据挖掘

    盘点几个安卓逆向之常用加密算法

    代码 //从字符串到hex byte[] bytes = "zhangsan".getBytes(StandardCharsets.UTF_8); ByteString of = ByteString.of 代码 //从字符串到base64 byte[] bytes = "zhangsan".getBytes(StandardCharsets.UTF_8); ByteString of = ByteString.of of = ByteString.of(digest); String hex = of.hex(); String base64 = of.base64(); return hex of = ByteString.of(doFinal); String hex = of.hex(); String base64 = of.base64(); return of = ByteString.of(doFinal); String hex = of.hex(); String base64 = of.base64(); return

    1.4K20编辑于 2022-06-05
  • 来自专栏IT进修之路

    TRX(波场)JAVA离线签名

    源码 import com.alibaba.fastjson.JSON; import com.google.protobuf.Any; import com.google.protobuf.ByteString transferContractBuilder = Contract.TransferContract.newBuilder(); transferContractBuilder.setAmount(amount); ByteString bsTo = ByteString.copyFrom(to); ByteString bsOwner = ByteString.copyFrom(from); transferContractBuilder.setToAddress blockHeight); Transaction.raw rawData = transaction.getRawData().toBuilder() .setRefBlockHash(ByteString.copyFrom (ByteArray.subArray(blockHash, 8, 16))) .setRefBlockBytes(ByteString.copyFrom(ByteArray.subArray(

    5.4K30发布于 2019-07-04
  • 来自专栏三好码农的三亩自留地

    深入理解Okio之旅

    接下来我们看一下Okio的另一个类ByteStringByteString 我们知道String是的内部是基于char[] 数组来实现的,Okio的ByteString内部是基于byte[] 数组来实现的。 跟String类似,ByteString也被设计为不可变的,这样可以保证ByteString是线程安全的。 public class ByteString implements Serializable, Comparable<ByteString> { final byte[] data; ByteString byteString = new ByteString(s.getBytes(Util.UTF_8)); byteString.utf8 = s; return byteString;

    1.1K20发布于 2019-04-23
  • 来自专栏ClearSeve

    c#string与byte[]相互转换

    string转换byte[] string strTmp = "ClearSeve"; byte[] byteString = System.Text.Encoding.Default.GetBytes (strTmp); byte[]转换string byte[] byteString = new byte[] { 0x01, 0x02, 0x03 }; string strTmp = System.Text.Encoding.Default.GetString (byteString);

    33530编辑于 2022-02-11
  • 来自专栏码匠的流水账

    聊聊BitCaskKeyDir

    bitcask-java/src/main/java/com/trifork/bitcask/BitCaskKeyDir.java public class BitCaskKeyDir { Map<ByteString , BitCaskEntry> map = new HashMap<ByteString, BitCaskEntry>(); ReadWriteLock rwl = new ReentrantReadWriteLock (); private boolean is_ready; public boolean put(ByteString key, BitCaskEntry ent) { } finally { writeLock.unlock(); } } public BitCaskEntry get(ByteString

    28840发布于 2020-09-14
  • 来自专栏全栈程序员必看

    Okio库的使用

    byteString) 将字符串写入 BufferedSink write(Source source, long byteCount) 从Source写入byteCount个长度的 long readByteString() 将缓冲区全部读取为字符串 ByteString readByteString(long byteCount) 将缓冲区读取长度为byteCount的字符串 long ByteString作为一个工具类,功能十分强大,它可以把byte转为String,这个String可以是utf8的值,也可以是base64后的值,也可以是md5的值,也可以是sha256 的值 String base64() String base64Url() String utf8() ByteString sha1() ByteString sha256() static ByteString decodeBase64(String base64) static ByteString decodeHex(String hex) static ByteString

    83520编辑于 2022-06-29
  • 来自专栏漫漫深度学习路

    tensorflow:使用tfrecords时的注意事项

    value ReadData/input_producer/limit_epochs/epochs 解码 tfrecords 时的类型一定要和制作 tfreords 时的类型一致: 这个问题主要出现在 bytestring 上,在保存图片数据时候,我们通常会 将图片 .tostring() 转成 bytestring 制作 tfrecords 然后在解码的时候,我们会用 decode_raw 将bytestring

    1.5K80发布于 2018-01-02
  • 来自专栏python进阶学习

    Haskell网络爬虫:视频列表获取案例分析

    LANGUAGE OverloadedStrings #-} import Network.HTTP.Simple (httpLBS, parseRequest, Response) import Data.ByteString.Lazy (ByteString) fetchPage :: String -> IO (Response ByteString) fetchPage url = httpLBS =<< parseRequest data Video = Video { title :: String , link :: String } deriving Show parseVideoList :: ByteString (ByteString) data Video = Video { title :: String , link :: String } deriving Show fetchPage :: String -> IO (Response ByteString) fetchPage url = do let proxyHost = "www.16yun.cn"

    44510编辑于 2024-06-08
  • 来自专栏IMWeb前端团队

    H5上传图片

    // 解码base64 var byteString = atob(dataURI.split(',')[1]); var mimeString = dataURI.split(',')[0].split (':')[1].split(';')[0]; // 类型数组 var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length ; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], { type: mimeString });

    1.1K10发布于 2019-12-04
  • 来自专栏IMWeb前端团队

    H5上传图片

    // 解码base64 var byteString = atob(dataURI.split(',')[1]); var mimeString = dataURI.split(',')[0].split (':')[1].split(';')[0]; // 类型数组 var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length ; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], { type: mimeString });

    2K100发布于 2017-12-29
  • 来自专栏向全栈出发

    「okhttp」Gradle引用改jar包引用(一波三折)

    你会发现报如下错误: 错误: 无法访问ByteString找不到okio.ByteString的类文件 okio是什么鬼?我代码里也没用到它呀? 不管了,先解决问题再说。 (大概是okhttp框架里用到的) 其中一个可靠的答案给了我线索: 《OkHTTP error cannot access ByteString》 它提供了okio的官方GitHub地址:https:/

    3.2K30发布于 2020-09-10
  • 来自专栏码匠的流水账

    聊聊BitCaskKeyDir

    bitcask-java/src/main/java/com/trifork/bitcask/BitCaskKeyDir.java public class BitCaskKeyDir { ​ Map<ByteString , BitCaskEntry> map = new HashMap<ByteString, BitCaskEntry>(); ReadWriteLock rwl = new ReentrantReadWriteLock (); private boolean is_ready; ​ public boolean put(ByteString key, BitCaskEntry ent) { ​ } finally { writeLock.unlock(); } ​ } public BitCaskEntry get(ByteString

    28700发布于 2020-09-05
领券