quick3.5版本android的http返回错误为空

c++线程
void HTTPRequest::onRequest(void)
{
int nSuc = connectJava();
int code = 0;

if (0 == nSuc) {
    if (m_postFields.size() > 0)
    {
        bool bNeedConnectSym = false;
        for (Fields::iterator it = m_postFields.begin(); it != m_postFields.end(); ++it)
        {
            postContentJava(it->first.c_str(), it->second.c_str(), bNeedConnectSym);
            bNeedConnectSym = true;
        }
    }

    if (m_postDataLen > 0)
    {
        postContentByteArrayJava(m_postData, m_postDataLen);
    }

    if (m_postContent.size() > 0)
    {
        for (Fields::iterator it = m_postContent.begin(); it != m_postContent.end(); ++it)
        {
            postFromContentJava(it->first.c_str(), it->second.c_str());
        }
    }
    if (m_postFile.size() > 0)
    {
        for (Fields::iterator it = m_postFile.begin(); it != m_postFile.end(); ++it)
        {
            postFromFileJava(it->first.c_str(), it->second.c_str());
        }
    }

    if (NULL != m_httpMethod && 0 == strcmp(m_httpMethod, "POST")) {
        postFormEndJava(isNeedBoundary());
    }

    //set cookie TODO

    code = getResponedCodeJava();

    // CCLOG("HTTPRequest responed code:%d", code);

    char* header = NULL;

    int nCounter = 0;
    while(true) {
        header = getResponedHeaderByIdxJava(nCounter);
        if (NULL == header) {
            break;
        }
        onWriteHeader(header, strlen(header));
        free(header);
        header = NULL;
        nCounter++;
    }

    //get cookies
    char* strCookies = getResponedHeaderByKeyJava("set-cookie");
    if (NULL != strCookies) {
        m_responseCookies = strCookies;
        free(strCookies);
    }

    //content len
    int nContentLen = getResponedHeaderByKeyIntJava("Content-Length");

    while (true) {
        char* recvData = NULL;
        int nRecv = 0;
        nRecv = getResponedStringJava(&recvData);
        if (NULL == recvData) {
            code = 0;
            CCLOG("HTTPRequest - onRequest, get null responed string");
            break;
        } else {
            if (1 == (char)(*recvData)) {
                nRecv -= 1;
                onWriteData(recvData + 1, nRecv);

                //here m_responseDataLength have add nRecv value
                onProgress(m_responseDataLength, nRecv, nContentLen, nRecv);

                free(recvData);
            } else {
                // CCLOG("HTTPRequest - onRequest, responed string completed");
                free(recvData);
                break;
            }
        }
    }
}

m_errorCode = code;
m_responseCode = code;
m_errorMessage = (code == 200) ? "" : getResponedErrJava();
m_state = (code == 200) ? kCCHTTPRequestStateCompleted : kCCHTTPRequestStateFailed;
m_curlState = kCCHTTPRequestCURLStateClosed;

}

java处理
static byte[] getResponedString(HttpURLConnection http) {
DataInputStream in;
try {
in = new DataInputStream(http.getInputStream());
} catch (IOException e) {
in = new DataInputStream(http.getErrorStream());
} catch (Exception e) {
Log.e(“Cocos2dxHttpURLConnection exception”, e.toString());
return null;
}

    try {
        byte[] buffer = new byte[1024];
        byte[] retBuf = null;
        int len = in.read(buffer);
        //            Log.i("QuickHTTPInterface", "have recv data:" + len);

        if (-1 == len) {
            retBuf = new byte[1];
            retBuf[0] = 0;
        } else {
            retBuf = new byte[len+1];
            retBuf[0] = 1;
            System.arraycopy(buffer, 0, retBuf, 1, len);
        }
        return retBuf;
    } catch (Throwable t) {
    	t.printStackTrace();
    }
	
	return null;
}

in = new DataInputStream(http.getInputStream());
这个可以正常返回, 但是执行了in = new DataInputStream(http.getErrorStream());后面到System.arraycopy(buffer, 0, retBuf, 1, len);一执行就被跳过,搞不懂为什么? 请大牛指点。

楼主可以给我个你quick3.5的下载链接么,我QQ648948153,谢谢你

已解决,OK。