- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 firebase 发送通知...7天前代码正在工作,但现在每当我调用 conn.getOutputStream();
时,我得到的只是 (java.net.protocolException在读取响应后无法写入请求正文)谢谢大家的帮助
URL url = null;
try {
url = new URL("https://fcm.googleapis.com/fcm/send");
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Authorization","key=someKey");
conn.setRequestProperty("Content-Type", "application/json; UTF-8");
JSONObject data= new JSONObject();
JSONObject jsonObject=new JSONObject();
try {
jsonObject.put("to","/topics/all");
data.put("title",title.getText());
data.put("messages",message.getText());
data.put("body",message.getText());
if(spinner.getSelectedItemPosition()==1)data.put("getId",videoListId.getText().toString());
else if(spinner.getSelectedItemPosition()==2)data.put("getId",videoId.getText().toString());
if(spinner.getSelectedItemPosition()==1)data.put("getSubject",videoListSubject.getText().toString());
else if(spinner.getSelectedItemPosition()==2)data.put("getSubject",videoSubject.getText().toString());
if(spinner.getSelectedItemPosition()!=0) data.put("getActivity",spinner.getSelectedItem().toString());
data.put("img_url",downloadUri.toString());
jsonObject.put("data",data);
OutputStreamWriter wr=new OutputStreamWriter(conn.getOutputStream());//exception here
wr.write(String.valueOf(jsonObject));
wr.flush();
conn.getInputStream();
wr.close();
} catch (JSONException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
最佳答案
我使用volley库解决了这个问题,这是我的解决方案......谢谢大家
void jsonRequest() {
URL url = null;
try {
url = new URL("https://fcm.googleapis.com/fcm/send");
try {
JSONObject data= new JSONObject();
JSONObject jsonObject=new JSONObject();
jsonObject.put("to","someone");
data.put("title",title.getText());
data.put("messages",message.getText());
data.put("body",message.getText());
if(spinner.getSelectedItemPosition()==1)data.put("getId",videoListId.getText().toString());
else if(spinner.getSelectedItemPosition()==2)data.put("getId",videoId.getText().toString());
if(spinner.getSelectedItemPosition()==1)data.put("getSubject",videoListSubject.getText().toString());
else if(spinner.getSelectedItemPosition()==2)data.put("getSubject",videoSubject.getText().toString());
if(spinner.getSelectedItemPosition()!=0) data.put("getActivity",spinner.getSelectedItem().toString());
data.put("img_url",downloadUri.toString());
jsonObject.put("data",data);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("https://fcm.googleapis.com/fcm/send", jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(NotificationActivity.this, "worked", Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(NotificationActivity.this, "failed", Toast.LENGTH_SHORT).show();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Authorization","key=somekey");
params.put("Content-Type","application/json; UTF-8");
return params;
}
};
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(jsonObjectRequest);
} catch (JSONException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
关于java - 服务器发送请求 firebase java.net.protocolException 在读取响应后无法写入请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51391418/
我正在尝试使用 ASP.NET MVC 实现 OpeinID 登录。我正在尝试按照 http://blog.nerdbank.net/2008/04/add-openid-login-support-
我一直在处理一个反复出现的问题,我感到非常沮丧。我正在尝试通过我在网上找到的模板 php web 服务连接到我的数据库,方法是向它发送 JSONObjects。尝试从服务器获取响应代码时,我不断收到
我有一个在不同环境中运行的简单 WCF 服务。今天,我尝试在我的 Windows 7 工作站上运行它,但在我的客户端(这是用于测试的简单控制台应用程序)上出现此错误: System.ServiceMo
安装 Windows Azure Powershell(2012 年 10 月版本 0.6.7)后,我在运行 Set-AzureDeployment 时收到错误Cmdlet。 向Remove-Azur
从 WCF 访问 DotNet 的方法时出现以下错误 内容类型text/html;响应消息的 charset=utf-8 与绑定(bind)的内容类型不匹配(text/xml;charset=utf-
当我尝试调用 getChildren() 时在 mediapipeline 上其中运行了我的自定义模块端点我收到此异常: org.kurento.client.internal.server.Prot
我以前使用的是 HttpClient 和 BasicNameValuePairs,由于某些原因我不得不转向 HttpUrlConnection。 因此,这段代码使用特定参数发出 HttpPost 请求
从 HttpClient 下载时,我有时会得到这样的堆栈跟踪: java.net.SocketTimeoutException: Read timed out, at java.net.SocketI
我正在尝试使用 Retrofit 将数据修补到我的服务器(rest API spring)。 我正在使用改造 1.9.0。 D/Retrofit: ---> HTTP PATCH http://mys
我试图通过 HttpURL 连接创建一个 FlickR 请求,我在 con.getInputStream() 上得到了一个 java.net.protocolException Thr
编辑:导致错误的原因是 url 变量声明中的拼写错误。提供的代码在输入正确的情况下有效。有关详细信息,请参阅我的答案。 原始问题:我正在开发一个定期向特定 Web 服务器发送 GET 请求的应用程序。
我正在尝试使用 firebase 发送通知...7天前代码正在工作,但现在每当我调用 conn.getOutputStream(); 时,我得到的只是(java.net.protocolExcepti
我正在尝试将对象从小程序发送到 struts 操作类使用对象输出流,但它给了我一个异常java.net.ProtocolException:读取输入后无法写入输出。 我创建了一个新的 URLConne
改造网络调用在工作应用中突然出现协议(protocol)异常而失败。该应用程序一直工作到昨天,今天所有的网络调用都失败了。调用在 HTTP 上运行良好,但在 HTTPS 下失败。 这是日志, java
我编写了一个简单的 httprequest/response 代码,但收到以下错误。我在类路径中引用了 httpclient、httpcore、common-codecs 和 common-loggi
我收到 java.net.ProtocolException对于一些视频。这就是将 URL 传递给 videoview 的方式.以前有人遇到过这种情况吗? videoview.setVideoURI(
我目前正在开发 Android 应用程序,并且正在使用 okttp3 发出一个简单的 GET 请求。我使用我的 Flask 应用程序作为 API 端点。Android 代码: OkHttpClien
我有这个代码: import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConn
我正在使用我在 Web 服务端无法控制的 WCF Web 服务。 我已经提供了一个自动生成的 svc.cs 代理文件,我正在使用它。 实际上我是在请求 Web 服务从客户端下载一些大数据。 有时我得到
我正在尝试使用此页面中推荐的代码 http://blogs.msdn.com/b/nathana/archive/2011/03/31/deciphering-a-soap-fault-with-a-
我是一名优秀的程序员,十分优秀!