我在电报中制作了机器人,它接受用户的一些请求。我的机器人应该发送有关请求状态更改的通知。我通过发送 get 请求将其与我的脚本分开。但有些用户收不到通知消息,因为这个错误"{ "ok": false, "error_code": 403, "description": "Forbidden: bot was returned by the user" }" 用户没有阻止机器人。该机器人出于某种原因阻止了自己。我不明白这是怎么发生的。用户无意识屏蔽机器人的原因是什么?我想为用户编写“如何不阻止机器人”的指南,但我不知道原因。我该如何解决这个问题?
这是我的要求:
https://api.telegram.org/bot<bot_token>/sendMessage?chat_id=<chat_id>&text=<Your request status changed>&reply_markup={"inline_keyboard": [[{"text": "View", "callback_data": "<request_id>"}]]}
Run Code Online (Sandbox Code Playgroud) 我喜欢这样做:
UPDATE table SET blobCol = HTTPGET(urlCol) WHERE whatever LIMIT n;
Run Code Online (Sandbox Code Playgroud)
有代码可以这样做吗?我知道这应该是可能的,因为MySQL Docs包含添加执行DNS查找的功能的示例.
MySQL/windows /最好不用编译东西,但我可以.
(如果你还没有听说过这样的事情,但是如果它确实存在的话,你会期望你会有这样的事情,"原则上不是"会很好.)
编辑:我知道这将打开一个完整的can-o-worms安全性,但在我的情况下,唯一访问数据库是通过mysql控制台应用程序.它不是一个世界可访问的系统.它不是网络后端.它只是一个本地数据记录系统
我如何做到这一点,以便我可以在.php所在地址的末尾创建一个东西然后告诉它做某些事情.例如,拉出这样的页面:
sampardee.com/index.php?page=whatever
救命?
还有什么我可以做的吗?
我想通过HTTP GET访问我的一个Web服务方法,我之前已经看过它但我无法弄清楚如何在VS2008 Web服务项目上允许这种访问协议.
我想你必须改变web.config文件,但不知道该怎么做.
有人知道吗?
我正在尝试连接到我的查询包含一些数据的Web服务.坏的是这个数据包含utf-8字符,这会产生问题.
如果我只是用普通字符串调用HttpGet,我会得到"非法字符"异常.所以我用Google搜索并尝试了一些utf-8魔法.
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter("http.protocol.content-charset", "UTF-8");
String utfurl = URLEncoder.encode(url, "utf-8");
HttpGet httpGet = new HttpGet(utfurl);
HttpResponse response = httpclient.execute(httpGet);
content = response.getEntity().getContent();
} catch (Exception e) {
Log.d(TAG, "getInputStream: " +e.getMessage());
Run Code Online (Sandbox Code Playgroud)
现在我不会得到非法的字符,但它似乎完全搞乱了utfurl,因为我反而得到"目标主机不能为空,或设置参数".可能是因为他不认识混乱的字符串中的"http://"部分.有什么建议?
问候
我正在尝试调用一个私有Web服务,其中有一个链接我将使用GET方法访问.在浏览器上使用直接URL(需要先登录)时,我获得了JSON格式的数据.我调用的URL是这样的
http://www.example.com/trip/details/860720?format=json
Run Code Online (Sandbox Code Playgroud)
url工作正常,但是当我调用它时HttpGet,我得到的是网页的HTML编码,而不是JSON字符串.我使用的代码如下:
private String runURL(String src,int id) { //src="http://www.example.com/trip/details/"
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(src);
String responseBody="";
BasicHttpParams params=new BasicHttpParams();
params.setParameter("domain", token); //The access token I am getting after the Login
params.setParameter("format", "json");
params.setParameter("id", id);
try {
httpget.setParams(params);
HttpResponse response = httpclient.execute(httpget);
responseBody = EntityUtils.toString(response.getEntity());
Log.d("runURL", "response " + responseBody); //prints the complete HTML code of the web-page
} catch (Exception e) {
e.printStackTrace();
}
return responseBody;
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我这里我做错了什么吗?
我使用backbone.js开发了一个应用程序所以我创建了多个模型和多个视图.最初我在一个文件中创建它们,但经过一些进一步的阅读后,我才知道建议将模型分开,视图分开,所有路由器分开.我只是想知道,如果我们这样做,我们将增加HTTP Get请求的数量(每个javascript文件一个)所以这种做法会导致一些额外的成本.
问:我们如何降低这笔费用?
Itry创建与URL的连接以检查上次内容修改,并将创建的用户名/密码作为基本身份验证.应使用上次修改时间检查返回的修改时间并存储以供参考.如果修改时间较新(较高),则应下载其余内容.
我尝试建立连接时遇到了自动化问题.
这是我做的:
我的登录和密码:
String username = "haythem";
String key ="FU2ra88xuhuf6-#At+aseQub8f8ebr$sweh$thu!Ep?*frusAvEdRamuw9thubr";
String password = AeSimpleSHA1.SHA1(key + username);
Run Code Online (Sandbox Code Playgroud)
我的SHA1代码:
public static String SHA1(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(text.getBytes("UTF-8"), 0, text.length());
byte[] sha1hash = md.digest();
return convertToHex(sha1hash);
}
Run Code Online (Sandbox Code Playgroud)
我的网络服务代码:
String mUrl = "http://app-vantage.appspot.com/api4/modified";
HttpGet request = new HttpGet(mUrl);
HttpParams params = new BasicHttpParams();
params.setParameter("Authorization", "Basic " + android.util.Base64.encodeToString((username + ":" + password).getBytes(), android.util.Base64.DEFAULT));
params.setParameter("User-Agent", "SDKDemo/1.0");
request.setParams(params);
Run Code Online (Sandbox Code Playgroud)
现在我收到401错误.
status = 401
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 UNAUTHORIZED</title>
/head> …Run Code Online (Sandbox Code Playgroud) 我正在尝试查询App Store以获取有关给定应用程序的信息,但是我不断收到以下错误.
XMLHttpRequest cannot load https://itunes.apple.com/lookup?id=<some-app-id>.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://www.<some-website>.co.uk' is therefore not allowed access. The response had HTTP status code 501.
Run Code Online (Sandbox Code Playgroud)
我用来执行请求的代码如下.
有谁知道我可能会出错?
var config = {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With',
}
};
$http.get("https://itunes.apple.com/lookup?id=<some-app-id>", config).success(
function(data) {
// I got some data back!
}
);
Run Code Online (Sandbox Code Playgroud) from bs4 import BeautifulSoup
import requests
from requests.auth import HTTPProxyAuth
url = "http://www.transtats.bts.gov/Data_Elements.aspx?Data=2"
proxies = {"http":"xxx.xxx.x.xxx: port"}
auth = HTTPProxyAuth("username", "password")
r = requests.get(url, proxies=proxies, auth=auth)
soup = BeautifulSoup(r.text,"html.parser")
viewstate_element = soup.find(id = "__VIEWSTATE").attrs
viewstate = viewstate_element["value"]
eventvalidation_element = soup.find(id="__EVENTVALIDATION").attrs
eventvalidation = eventvalidation_element["value"]
data = {'AirportList':"BOS",'CarrierList':"VX",'Submit':'Submit',"__EVENTTARGET":"","__EVENTARGUMENT":"","__EVENTVALIDATION":eventvalidation,"}
r = requests.post(url, proxies, auth, data )
print r
Run Code Online (Sandbox Code Playgroud)
这个代码在我使用时工作正常requests.get(url, proxies=proxies, auth=auth),但是当有一些数据必须通过requests.post()代理身份验证发送时该怎么办?
http-get ×10
android ×3
javascript ×2
web-services ×2
angularjs ×1
backbone.js ×1
c# ×1
connection ×1
http-post ×1
httpclient ×1
ios ×1
mysql ×1
php ×1
proxy ×1
python ×1
sql-function ×1
telegram ×1
telegram-bot ×1
utf-8 ×1