小编Mr.*_*r.7的帖子

当我尝试记录网络响应时,OKHttp抛出非法状态异常

我在我的OkHttp客户端上放了以下拦截器:

httpClient.addInterceptor(new Interceptor() {
    @Override
    public Response intercept(Chain chain) throws IOException {
        Response response = chain.proceed(chain.request());
        Log.d("Response", response.body().string());
        return response;
    }
    });
Run Code Online (Sandbox Code Playgroud)

但是,这对于Retrofit 2来说并不是很好.看起来你只能从响应中读取一次流,这可能是造成异常的原因.我在想改造试图解析日志已经解析过的流.那我如何得到回应呢?我正在尝试调试一个非常讨厌和奇怪的格式错误的json异常.

这是异常堆栈跟踪:

07 - 28 10: 58: 21.575 22401 - 22529 / REDACTED E / AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
    Process: REDACTED, PID: 22401
    java.lang.IllegalStateException: closed
    at okhttp3.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java: 378)
    at okio.Buffer.writeAll(Buffer.java: 956)
    at okio.RealBufferedSource.readByteArray(RealBufferedSource.java: 92)
    at okhttp3.ResponseBody.bytes(ResponseBody.java: 83)
    at okhttp3.ResponseBody.string(ResponseBody.java: 109)
    at REDACTED.ServiceGenerator$2.intercept(ServiceGenerator.java: 90)
    at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java: 187)
    at REDACTED.ServiceGenerator$2.intercept(ServiceGenerator.java: 89)
    at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java: 187)
    at REDACTED.ServiceGenerator$2.intercept(ServiceGenerator.java: 89)
    at …
Run Code Online (Sandbox Code Playgroud)

java android retrofit okhttp

16
推荐指数
4
解决办法
1万
查看次数

如何从PHP调用JS函数?

我有一个php页面,上面有一个html按钮,在那里我应该JS用php变量调用一个函数。我得到了错误

变量未定义

这是代码:

<body>
    <form  class="form">
    <?php
    if(file_exists('megjelenitendo.txt')){
        $mappak=array();
        $mappakdb=0;
        $megjelenitendo = fopen("megjelenitendo.txt", "r") or die("Unable to open file!");
        while(!feof($megjelenitendo)) {
             $mappak[$mappakdb]=fgets($megjelenitendo) ;
             $mappakdb++;
            }   
        fclose($megjelenitendo);
        $j=0;

        foreach(glob('*') as $filename){
            for($i=0; $i<$mappakdb;++$i){
            //echo $filename."==".$mappak[$i];echo "<br>";
            if(strtoupper($filename)==strtoupper(trim($mappak[$i]))){
             //echo '<button type="submit" id='.$i.' class="button" formaction='.$filename.' />'.$filename;//substr($filename, 3,strlen($filename));
            echo '<button type="button" id='.$i.' class="button" OnClick=mappanyitas('.trim($mappak[$i]).')>'.trim($filename).'</button>';
             echo '<br>';         
         }
             else{} 
         }
     }}

     else{
        echo "A mappa elemei:<br>";
     }
    ?>
    </form>

    <script type="text/javascript">
         function mappanyitas(filename){
            alert(filename);
        }

    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

javascript php

2
推荐指数
1
解决办法
6754
查看次数

如何在Jquery中获取data-id属性值?

HTML代码

<tbody>
    <tr>
        <td>0</td>
        <td>204093D-P12</td>
        <td>80443</td>
        <td>Name</td>
        <td><span class="label label-success">Updated</span></td>
        <td><button class="btn btn-xs btn-flat" data-toggle="modal" data-id="204093D-P132" data-target="#myModal" type="button" title="Add" onClick="ShowModal()"><i class="fa fa-plus" aria-hidden="true"></i></button> | <button class="btn btn-xs btn-flat" data-toggle="modal" data-id="204093D-P132" data-target="#myModal_edit" type="button" title="Edit" onClick="ShowEdit()"><i class="fa fa-pencil-square-o" aria-hidden="true" ></i></button>| <button class="btn btn-xs btn-flat" data-toggle="modal" data-id="204093D-P132" data-target="#myModal_details" type="button" title="Details" onClick="ShowDetails()"><i class="fa fa-list-ul" aria-hidden="true"></i></button></td>
    </tr><tr>
        <td>1</td>
        <td>216619D-P18</td>
        <td>16009</td>
        <td>Name</td>
        <td><span class="label label-success">Updated</span></td>
        <td><button class="btn btn-xs btn-flat" data-toggle="modal" data-id="216619D-P918" data-target="#myModal" type="button" title="Add" onClick="ShowModal()"><i class="fa fa-plus" aria-hidden="true"></i></button> | <button class="btn btn-xs btn-flat" data-toggle="modal" data-id="216619D-P918" data-target="#myModal_edit" …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

1
推荐指数
1
解决办法
3万
查看次数

为什么 `isArray()` 写在 `Array` 而不是 `Array prototype` 上?

出于好奇,我只想知道原因。

所有的数组方法,如map, forEach,reduce都写在上面Array.prototype,所以,我可以这样使用

let sum = [1,2,3,4,5].reduce( (acc, value) => acc+value, 0);
console.log(sum);
Run Code Online (Sandbox Code Playgroud)

与所有这些方法不同,isArray()用法就像

let isArray = Array.isArray([1,2,3]); // I can't use [1,2,3].isArray(); :(
console.log(isArray);
Run Code Online (Sandbox Code Playgroud)

这背后有什么原因吗?

javascript arrays

1
推荐指数
1
解决办法
609
查看次数

标签 统计

javascript ×3

android ×1

arrays ×1

java ×1

jquery ×1

okhttp ×1

php ×1

retrofit ×1