gpt4 book ai didi

java - Android http 请求出现严重错误

转载 作者:行者123 更新时间:2023-12-01 14:21:40 26 4
gpt4 key购买 nike

我对 Android 开发非常陌生,这是我的第一天。我无法理解我的代码出了什么问题,因为我无法理解收到的错误消息。我只是想找 somoene 来解释一下正在发生的事情。

我正在尝试发送带有 url 的 http 请求,我应该得到一个包含完整文本正文的响应,我尝试将此正文提取到字符串中,然后通过 Android 文本到语音 api 发送它同时还显示该页面的 WebView 。

这里是:

package com.example.webview;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.Toast;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;

public class MainActivity extends Activity implements TextToSpeech.OnInitListener{

private WebView mWebview ;
EditText txtText;
TextToSpeech tts = new TextToSpeech(this, (OnInitListener) this);
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
mWebview = new WebView(this);

mWebview.getSettings().setJavaScriptEnabled(true); // enables javascript

final Activity activity = this;

mWebview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});

mWebview .loadUrl("http://www.androidhive.info/2012/01/android-text-to-speech-tutorial/");
setContentView(mWebview);
try {
speakOut(getText("http://www.androidhive.info/2012/01/android-text-to-speech-tutorial/"));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void speakOut(String text) {
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}

public String getText(String webPage) throws ParseException, IOException{
HttpResponse response = null;
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://supersecretwebsite.net:8080/" + "http://www.androidhive.info/2012/01/android-text-to-speech-tutorial/"));
response = client.execute(request);
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String responseBody = "No text found on webpage.";
int responseCode = response.getStatusLine().getStatusCode();
switch(responseCode) {
case 200:
HttpEntity entity = response.getEntity();
if(entity != null) {
responseBody = EntityUtils.toString(entity);
}
}
return responseBody;
}


@Override
public void onInit(int status) {
// TODO Auto-generated method stub

}

}

错误:

嗯,有很多。它以

开头
(Application)com.example.webview (Tag)Trace (Text)Error opening trace file: No such file or directory (2)

然后一切似乎都停止了。该程序甚至没有运行。当我有一个基本的 webview 而没有其他东西时,它工作得很好,所以添加的 Httprequest 或文本到语音可能是导致这些错误的原因,但老实说,我无法说出如何、什么或为什么。

最佳答案

您需要在另一个线程上建立任何网络。使用异步任务来实现这一点。然后在 OnPostExecute() 方法中您可以显示结果。

您还需要在 list 中声明互联网权限。

关于java - Android http 请求出现严重错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17495253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com