有时,当尝试抓取 Instagram 媒体时,可以在 URL 末尾添加 (?__a=1)
例如:https: //www.instagram.com/p/CP-Kws6FoRS/ ?__a=1
返回的响应
{
"__ar": 1,
"error": 1357004,
"errorSummary": "Sorry, something went wrong",
"errorDescription": "Please try closing and re-opening your browser window.",
"payload": null,
"hsrp": {
"hblp": {
"consistency": {
"rev": 1005622141
}
}
},
"lid": "7104767527440109183"
}
Run Code Online (Sandbox Code Playgroud)
为什么会返回此响应?我应该如何解决此问题?另外,我们还有其他方法来获取视频和照片 URL 吗?
正如我们知道在后台通过剪贴板管理器读取数据在 android Q 中被谷歌停止,所以我无论如何都需要在用户返回活动时粘贴直接复制到编辑文本中的数据,而没有用户进行粘贴和粘贴按钮。
问题在于尝试使用getPrimaryClip()
返回读取数据null
。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_copy_and_paste);
ed_editText = findViewById(R.id.ed_editText);
}
@Override
protected void onResume() {
super.onResume();
getCopy()
}
private void getCopy() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard != null && clipboard.hasPrimaryClip() && clipboard.getPrimaryClip() != null) {
CharSequence clip = clipboard.getPrimaryClip().getItemAt(0).coerceToText(CopyAndPasteActivity.this).toString();
ed_editText.setText(clip.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
XML
<EditText
android:id="@+id/ed_editText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="24dp"
android:layout_marginStart="24dp"
android:maxLines="1"
android:lines="1"
android:focusable="true"
android:textSize="14sp"
android:inputType="text"
android:focusableInTouchMode="true"
android:layout_weight="1"
android:background="@null" >
<requestFocus />
</EditText>
Run Code Online (Sandbox Code Playgroud)